articulos

Pegar dos imágenes en PHP con WideImage


Pegar dos imágenes en PHP con WideImage

No soy muy avanzado actualmente en el uso de la librería GD o ImageMagick, últimamente solo la utilizaba para redimensionar imágenes aunque lo dejé de usar ya que empecé a hacer uso de phpThumb que me servía para poder trabajar una imagen a partir del original, osea el más grande.

Para mi sitio Brote Colectivo necesitaba editar los afiches de los eventos para agregarles abajo un estilo de marca de agua pero diferente, es una imagen de 600x60 que dice "Enterate de este y otros eventos en BroteColectivo", lo estuve haciendo con Photoshop con cada una de las imágenes por un par de semanas hasta que me cansé y busqué la forma de que PHP lo haga por mí.

Resultado final del código de ejemplo. Arriba se ve la imagen principal y abajo está la imagen que fué añadida.

Después de buscar términos como "merge photos with php" entre otros, decidí preguntar en ForosDelWeb, donde a pesar que no conseguí una respuesta directa, busqué por otros términos y llegué a lo que buscaba.

 

La librería que encontré es WideImage, una librería de código abierto para la manipulación de imágenes, tal como dice el título de su página, la descargué. puse los archivos en mi servidor y  logré hacer este código que les comparto a continuación:

include 'WideImage/WideImage.php';
$archivo = "miarchivo.jpg"; // Defino el archivo en una variable
$image = WideImage::load($archivo); // Cargo la imagen con la libreria
$marca = WideImage::load('marca.jpg'); // Cargo la segunda imagen, que irá abajo
$imagen_editada = $image->resize('600'); // Digo las dimensiones a la que quiero redimensionar primero
$negro = $imagen_editada->allocateColor(0,0,0); // Defino el fondo que tendrá el canvas de la imagen, en este caso, negro.
$imagen_editada = $imagen_editada->resizeCanvas('100%', '100%+60', '0', '0', $negro); // Cambio el tamaño del canvas
$resultado = $imagen_editada->merge($marca, '0', 'bottom', '100'); // Inserto la segunda imagen abajo de la otra
$resultado->saveToFile($archivo); // Guardo el archivo y listo !
Publicado el 11 Mayo 2013
Desarrollo Web