Poner un logo en una imagen

Siguiendo con ImageMagick, he aquí una forma muy sencilla de combinar dos imágenes con el fin de poner un logo en otra imagen, usando simplemente el comando compose.

Básicamente, el tema de combinar dos imágenes se puede utilizar en mil sitios, desde poner el logotipo de una tienda online en todo el catálogo de productos (de forma automática), hasta a la hora de subir tus fotos al blog. El hecho de usar ImageMagic, es como siempre porque simplifica la tarea de automatización, como al final vas a hacer siempre lo mismo, se copian las fotos a un directorio, se ejecuta un script, i voila!! 200 imágenes hechas en un instante.

El programa compose lo que hace es combinar varias imágenes según unos parámetros, en el caso que presento, se utiliza la disolución de una imágen sobre otra (vease dissolve). A parte de dissolve, hay otras muchas formas de combinar imágenes, pero no vienen al caso.

Básicamente, el comando para combinar dos imágenes es:

composite -dissolve porcentaje -gravity South star.gif dragon_sm.gif resultado

Por ejemplo, si combinamos las siguientes imágenes (que son las mismas que se usan como ejemplo en ImageMagick):

Según el parámetro que se utilice en “dissolve”, obtendremos una de las siguientes imágenes resultantes:

Por poner un ejemplo más claro, partamos de la imagen de fuego del otro dia y de un logo pequeño de CodigoManso.

La imagen de fuego…

y el logotipo…

Tras ejecutar:

composite -dissolve 100 logo.png fuego.jpg fuego_dissolve100.jpg

Se obtiene la imagen:

En según que casos, interesa que el logotipo no se superponga al 100% sobre la otra imagen, si no que de alguna forma se transparente un poco. Es muy fácil cambiar el comando, simplemente es cambiar el 100 por un número más pequeño, por ejemplo 50. En el caso de disolver el logo al 50%, se obtendría:

Como se puede observar, el logotipo es ahora más “clarito”, y deja un poco ver el fondo.

Otro problema es donde se posiciona la imagen. Puede ser que arriba a la izquierda no sea el mejor sitio, y queremos que sea abajo a la derecha, o centrada, como en las siguientes dos imágenes:

Para posicionar la primera imagen sobre la segunda, se utiliza el parámetro -gravity, así la primera imágen habría sido creada con el comando:

composite -dissolve 100 -gravity SouthEast logo.png fuego.jpg fuego_southeast.jpg

Y la siguiente imágen (la que está centrada), se habría creado como:

composite -dissolve 100 -gravity Center logo.png fuego.jpg fuego_southeast.jpg

Los valores que puede tomar el parámetro gravity, son:

NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast

Finalmente, otro problema es que el logotipo sale alineado muy cerca del final de la imagen, y quizás lo queremos abajo a la derecha, pero no tan arrinconado. No hay ningún problema, con el parámetro -geometry se soluciona esto. Si por ejemplo, queremos el logo abajo a la derecha, pero queremos dejar una separación de 12 píxeles a la derecha, y 8 abajo, habrá que añadir “-geometry +12+8“. Así que el comando quedará como:

composite -dissolve 100 -gravity SouthEast \
          -geometry +12+8 logo.png fuego.jpg fuego_southeast_12_8.jpg

Y la imagen resultante:

Pues nada más, he aquí un par de enlaces fundamentales para el que quiera seguir indagando en el tema:

Trackback URL

, , , , ,

13 Comments on "Poner un logo en una imagen"

Hi Stranger, leave a comment:

ALLOWED XHTML TAGS:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to Comments