crear marcas de agua con php

Hace tiempo que implementé este script para crear marcas de agua con php en una tienda online para marcar productos como agotados y es algo muy simple pero que aporta la funcionalidad necesaria

Es un script muy sencillo que usa las librerías GD de php para manipular las imágenes y superponer una sobre la otra, de esta manera puedes crear marcas de agua con php.

Primero es necesario crear la imagen que será la marca de agua en formato PNG. La ventaja principal de éste formato (indispensable en este caso) es que permite 255 niveles de transparencias, por lo que se puede lograr una imagen translúcida. Yo he creado una con la palabra agotado, en base al ejemplo que he comentado anteriormente para marcar productos como agotados. Cada cual puede mejorar o crear la suya propia en función de lo que necesite.

Basta con pasar el nombre de la imagen a la cual se le desea aplicar la marca de agua a través de la URL.

watermark.php?i=rockers_coffee_pink.jpg

CÓDIGO para crear marcas de agua con php

Repositorio en Github: https://github.com/elpeter/watermark-php

Actualización: Agosto 2013. El código se ha movido a Github pues de esta manera el código esta versionado, esta mejor organizado para descargarlo y si alguien quiere mejorar el código o crear una nueva versión a partir de este repositorio puede hacerlo sin problemas.

Indicar que este proceso para implementar marcas de agua sobre una imagen no es permanente e irreversible, y alguien que entienda un poco puede sacar la imagen original sin problema, pero este proceso para incluir marcas de agua no está hecho para sellar imágenes originales con marcas de agua duraderas o difíciles de eliminar.

DEMO

Ejemplo de funcionamiento de un producto con marca de agua y otro sin ella

14 opiniones en “crear marcas de agua con php”

  1. Hola estaba revisando tu post y el algo en el codigo no funciona.
    primero en $basedir=”/path_completo/a/desarrollo_watermark”;
    cambie poniendo mi path $basedir=”http://midominio.com/imagenes/prods”;
    no funciono, luego puse solop el path de la imagen $basedir=”/imagenes/prods”; tampoco funciono
    Cual es el error? la pagina de la muestra no esta operativa

    1. No he probado el código, pero sin hacer ninguna prueba, te puedo decir lo siguiente:

      Una cosa es PATH, otra cosa es URL, claramente dice colocar PATH, no URL

      Esto es URL: “http://dominio.com/file.php”

      Esto es URL (relativo): “/folder/file.php”

      Esto es PATH: “/home/user/myproject/watermark.php”

      Saludos

    1. no tienes culpa de ser ignorante y un paquete…
      pero como dice el post esto es una marca de agua, algo que no se puede quitar, que no es un background ni nada por css que se pueda hackear y quitar la marca de agua en un momento. Por esto este script genera una nueva imagen con ambas superpuestas. Que si alguien quiere quitar la marca de agua ya tiene que tocar photoshop y la imagen original no quedará igual.

  2. hola..veo que sabes bastante del tema…por eso te hago una pregunta..sabes como colocar una marca de agua a un stream? puede ser un embed de justin, tvope,ustream etc…sabes como hacerlo? …te agradezco tu colaboracion

    1. Bueno amigo, si no has modificado ni una linea de código, pues normal!!! Esto no es un “plug and play” un usb que pinchas y listo!

      Hay algunas cosillas que tocar!

      Por ejemplo si voy a tu ejemplo donde lo has implementado y voy a la url que hace la carga de la marca de agua: http://yoamoacartagena.webcindario.com/watermark.php?i=starcraft-2-wings-of-liberty-pc.png

      Veo que te esta fallando todo esto:

      Warning: imagecreatefrompng() [function.imagecreatefrompng]: Unable to access /path_completo/a/desarrollo_watermark/agotado_trans.png in /home/webcindario/y/o/yoamoacartagena/watermark.php on line 14

      Warning: imagecreatefrompng(/path_completo/a/desarrollo_watermark/agotado_trans.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in /home/webcindario/y/o/yoamoacartagena/watermark.php on line 14

      Warning: imagecreatefrompng() [function.imagecreatefrompng]: Unable to access /path_completo/a/desarrollo_watermark//starcraft-2-wings-of-liberty-pc.png in /home/webcindario/y/o/yoamoacartagena/watermark.php on line 27

      Warning: imagecreatefrompng(/path_completo/a/desarrollo_watermark//starcraft-2-wings-of-liberty-pc.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in /home/webcindario/y/o/yoamoacartagena/watermark.php on line 27
      Error opening /path_completo/a/desarrollo_watermark//starcraft-2-wings-of-liberty-pc.png!

      Tienes que revisar el código antes, cambia : /path_completo/a/desarrollo_watermark/ por tu path!!

      1. ah no bueno… muchos programadores piensan que copiar, pegar y ya está la magia jajajaja, ánimo!! lean el código, entiendan y modifiquen lo necesario, no todo está de gratis jeje, saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *