PHP: ¿Cómo puedo insertar marcas de agua o logos a las imágenes?

De Foros del Web

Bueno aquí está el script, no es difícil solamente ingenio. Se usa 2 imágenes en el script, el logo con extensión PNG (ya que la extensión GIF ya no es soportada en las últimas versiones de GD) he optado por esta extensión ya que soporta transparencias que es lo mejor para colocar una marca de agua. Y la otra imagen es JPG puede ser cualquier extensión es indiferente. El script esta comentado para que sea lo más 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);
 
?> 

Aclaración: Creo que es claro que el logo tiene que ser menor en dimensiones que a la imagen que se le pondrá, porque sino no se comportará 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


--Dariodario 02 Jul 2005

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales