Tema: FAQ's de PHP
Ver Mensaje Individual
  #141 (permalink)  
Antiguo 02/07/2005, 22:27
DarioDario
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Tema: Imagenes
Pregunta: ¿Como puedo insertar marcas de agua o logos a las imagenes?
Respuesta:
Bueno aqui esta el script, no es dificil solamente ingenio. Se usa 2 imagenes en el script, el logo con extención PNG (ya que la extención GIF ya no es soportada en las ultimas verciones de GD) he optado por por esta extención ya que soporta transparencias que es lo mejor para colocar una marca de agua. Y la otra imagen es JPG puede ser cualquier extención es indiferente. El script esta comentado para que sea lo mas claro y entendible.

Código PHP:
<?php

// Esta imagen es el logo que se pondra.
$imagen_logo imagecreatefrompng("logo.png");
// Defino ancho, alto del logo.
$ancho_logo imagesx($imagen_logo);
$alto_logo imagesy($imagen_logo);

// Creo la imagen a cual se le pondra el logo.
$imagen_dest imagecreatefromjpeg("prueba.jpg");
// Defino ancho, alto de la imagen que se le colocara el logo.
$ancho_dest imagesx($imagen_dest);
$alto_dest imagesy($imagen_dest);

// Defino la posicion donde se mostrara el logo dejando
// 10 pixeles de espacio. Se mostrara en la parte
// inferior derecho.
$ancho_muestra = ($ancho_dest $ancho_logo) - 10;
$alto_muestra = ($alto_dest $alto_logo) - 10;

//Envio la cabecera para mostrar la imagen.
header("Content-type: image/jpeg");

// Sobre pongo el logo a la imagen.
imagecopyresized($imagen_dest,$imagen_logo,$ancho_muestra,$alto_muestra,0,0,$ancho_logo,$alto_logo,$ancho_logo,$alto_logo);

// Guardo la imagen que ya tiene el logo.
imagejpeg($imagen_dest,"prueba.jpg",75);
// Muestro la imagen.
imagejpeg($imagen_dest,"",75);

// Destruyo las imagenes.
imagedestroy($imagen_dest);
imagedestroy($imagen_logo);

?>
Aclaracion: Creo que es claro que el logo tiene que ser menor en dimenciones que a la imagen que se le pondra, porque sino no se comportara como se desea. Lo aclaro por es un error darlo por echo.

Para los que no sepan:
http://ar2.php.net/manual/es/functio...opyresized.php