Check the new version here

Popular channels

Poner marca de agua a una imagen con PHP

Marca de agua

En este ejemplo se puede ver cómo añadir una imagen a otra para agregarle una marca de agua para, por ejemplo, poner un copyright a las imágenes o indicar de qué página proceden. Además de eso, se puede ver cómo redimensionar una imagen.



// Cargar la estampa y la foto para aplicarle la marca de agua
$marca_agua = imagecreatefrompng('http://www.desarrolloweb.com/DW1024/images/logo.png'); //para imágenes png
$imagen = imagecreatefromjpeg('img/Lighthouse.jpg');

//Redimensionar
//Se define el ancho máximo y el alto máximo que tendrá la imagen
$max_ancho = 100;
$max_alto = 50;

//Ancho y alto de la imagen original
list($ancho,$alto) = getimagesize('http://www.desarrolloweb.com/DW1024/images/logo.png');

//Para saber cuánto aumenta o disminuye la imagen
$x_ratio = $max_ancho / $ancho;
$y_ratio = $max_alto / $alto;

//Se calcula ancho y alto de la imagen final
/* Si el ancho y el alto de la imagen no superan los máximos, $ancho_final y $alto_final son los que tiene actualmente */
if (($ancho <= $max_ancho) && ($alto <= $max_alto)) {
$ancho_final = $ancho;
$alto_final = $alto;
}
/*
* Si el ratio de x multiplicado por la altura es menor que la altura máxima, * entonces ése será el alto final
*/
elseif (($x_ratio * $alto) < $max_alto) {
$alto_final = ceil($x_ratio * $alto);
$ancho_final = $max_ancho;
}
/*
* Si el ratio de y multiplicado por la anchura es menor que la anchura * máxima, entonces ése será el ancho final
*/
else {
$ancho_final = ceil($y_ratio * $ancho);
$alto_final = $max_alto;
}

//Crear una imagen de tamaño $ancho_final x $alto_final
$temporal = imagecreatetruecolor($ancho_final, $alto_final);
//Copiar $img_original sobre la imagen que acabamos de crear ($temporal)
imagecopyresampled($temporal, $marca_agua, 0, 0, 0, 0, $ancho_final, $alto_final, $ancho, $alto);

//Establecer los márgenes para la marca de agua y obtener el alto/ancho de la imagen de la estampa
$margen_dcho = 10;
$margen_inf = 10;
$sx = imagesx($marca_agua);
$sy = imagesy($marca_agua);

//Copiar la imagen de la estampa sobre nuestra foto usando los índices de margen y el ancho de la foto para calcular la posición de la estampa
imagecopy($imagen, $marca_agua, imagesx($imagen) - $sx - $margen_dcho, imagesy($imagen) - $sy - $margen_inf, 0, 0, imagesx($marca_agua), imagesy($marca_agua));

// Imprimir y liberar memoria
header('Content-type: image/png');
imagepng($imagen);
imagedestroy($imagen);
//Se destruye variable $marca_agua para liberar memoria
imagedestroy($marca_agua);
?>

El resultado de ejecutar el código anterior es el siguiente:







Fuente: http://desarrolloweb.com/articulos/gd-ejemplos.html 
 
0
0
0
0No comments yet