2010-11-14 13 views
6

Ok, busqué en internet y stackoverflow, pero parece que no puedo encontrar una respuesta para mi problema.Nombre de usuario como marca de agua

Necesito filtrar las imágenes cargadas por los usuarios dinámicamente, pero no quiero solo texto aplicado en una imagen. Necesito una marca de agua real como esta: alt text

La única manera en que puedo lograr este efecto es mediante el uso de Photoshop, agregando sombras y disminuyendo el relleno al 0%. Pero si mi sitio es visitado por 200 usuarios que cargan sus imágenes, simplemente no puedo hacer para cada uno de ellos un nuevo archivo PNG con su nombre de usuario. Es por eso que estoy buscando una solución dinámica para este problema.

Ya encontré clases de cómo agregar un archivo png como una marca de agua a las imágenes, pero como he dicho antes, esto no funcionará si mi sitio es visitado por muchos usuarios.

Espero que alguien sepa una forma de resolver esto y obtener el mismo efecto en las imágenes de forma dinámica.

Muchas gracias.

Respuesta

11

La documentación de la biblioteca de procesamiento de imágenes ImageMagick includes such a transparent watermark example. Incluso si quisiera usar GD en lugar de ImageMagick, podría darle una idea de cómo hacerlo.

+0

Gracias por la respuesta. Como mencioné antes, ya sé cómo agregar marcas de agua dinámicamente a una imagen. Quiero dar un paso más y crear dinámicamente un PNG con la transparencia y los efectos de sombras como se ve aquí arriba para cada usuario registrado. – moonwalker

+0

Lo siento, no vi lo que querías decir la primera vez. Muchas gracias, voy a dar una oportunidad! – moonwalker

2

Puede usar imageMagick para hacer esto con PHP. Realice búsquedas en Google de marcas de agua de imagemagick, este hilo puede ayudar a algunos: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=17067

Básicamente, desea crear un archivo PNG de su marca de agua. El PNG permitirá la transparencia alfa y puede obtener su efecto de sombra, etc.

Esto se aplicará a su imagen JPG, y se realizará una imagen JPG con marca de agua final con su PNG agregado encima.

Debería funcionar.

+0

Gracias por su respuesta.Como mencioné antes, ya sé cómo hacerlo. Ahora necesito crear dinámicamente el archivo PNG "marca de agua" para cada usuario con PHP. :) – moonwalker

0

Las otras respuestas aquí son excelentes respuestas, pero yo quería echarle una alternativa.

Puede construir dinámicamente scripts para ejecutar , lo que le ofrece mucha flexibilidad. Esto es demasiado exagerado para una marca de agua simple, pero si necesita hacer un procesamiento de imagen más complejo, definitivamente es una opción. CoolText.com es un ejemplo de un sitio web que hace esto.

El mismo enfoque debería funcionar en Photoshop también. De hecho, probablemente podría crear una instancia del Photoshop COM interface with PHP.

De nuevo, no lo recomiendo para marcas de agua básicas ... solo si necesita más funciones de las que se proporcionan con ImageMagick/GD.

+0

Gracias por las alternativas. Los echaré un vistazo. – moonwalker

0

A las demás respuestas añadiré que no debe generar la imagen sobre la marcha. Si la marca de agua es por nombre de usuario, genere el archivo de marca de agua una vez cuando el usuario se registre para su sitio (o cambie su nombre de usuario), luego use ese archivo como una superposición para las imágenes cargadas. Esto ahorrará mucho tiempo de CPU.

+0

Esa es toda la idea. No sé cómo generar un archivo PNG con transparencia y efecto de sombra. La imagen se crea una vez cuando el usuario está registrado (no pueden cambiar su nombre de usuario) – moonwalker

Cuestiones relacionadas