PHP Conference Nagoya 2025

Usar imagecopymerge() para crear una marca de agua translúcida

Ejemplo #1 Usar imagecopymerge() para crear una marca de agua translúcida

<?php
// Cargar la estampa y la foto para aplicarle la marca de agua
$im = imagecreatefromjpeg('foto.jpeg');

// Primero crearemos nuestra imagen de la estampa manualmente desde GD
$estampa = imagecreatetruecolor(100, 70);
imagefilledrectangle($estampa, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($estampa, 9, 9, 90, 60, 0xFFFFFF);
$im = imagecreatefromjpeg('foto.jpeg');
imagestring($estampa, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($estampa, 3, 20, 40, '(c) 2007-9', 0x0000FF);

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

// Fusionar la estampa con nuestra foto con una opacidad del 50%
imagecopymerge($im, $estampa, imagesx($im) - $sx - $margen_dcho, imagesy($im) - $sy - $margen_inf, 0, 0, imagesx($estampa), imagesy($estampa), 50);

// Guardar la imagen en un archivo y liberar memoria
imagepng($im, 'foto_estampa.png');
imagedestroy($im);

?>
Usar imagecopymerge() para crear una marca de agua translúcida
Este ejemplo usa imagecopymerge() para fusionar la estampa con la imagen original. Al usar esto, se puede establecer la opacidad de la estampa; en nuestro ejemplo la establecimos al 50% de opacidad. En la práctica, esto sería útil para la protección del copyright como marcas de agua semitransparentes que son difíciles de eliminar, pero que aún permiten ver la imagen.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top