Unir, juntar o pegar imágenes con PHP

En algunas ocasiones necesitamos unir o juntar dos o más imágenes en una para mostrarlas en la web o en una aplicación. Pensareis que lo más rápido y sencillo es coger un programa de edición de fotos como PhotoShop o Gimp, pegar las imágenes, darle a guardar y listo.

Pero claro esto es muy sencillo siempre y cuando las imágenes que vamos a unir o juntar no sean dinámicas, ¿A que me refiero con dinámicas?, pues a que la imagen cada X tiempo o cada vez que se accede a ella cambie.

Realmente existen muchísimos casos en los que necesitamos que las imágenes se unan solas utilizando php. Un ejemplo seria: poner una marca de agua a una imagen.

En este manual no voy a explicar como poner una marca de agua, lo que voy a explicar es el sistema base para juntar imágenes (cabecera y cuerpo).

Una vez dicho todo esto pongo el caso en el que yo he utilizado la unión de dos imágenes.

Logo TeamSpeak Mega Manuales

Esta seria la imagen de cabecera que no cambia.

 

+

Teamwiever Mega Manuales

Esta sería la imagen que cambia cada X tiempo y que por lo tanto no es fija.

 

Bueno, lo que yo he realizado es una imagen con las dos para ponerla en TeamSpeak de esta web(megamanuales.es) y con ello conseguir que se actualice la imagen,  a continuación expongo el código comentado utilizado.

<?php
//Creamos la base de la imagen donde colocaremos luego las otras dos
$baseimagen = ImageCreateTrueColor(300,210);
//Le damos un color a la base, en este caso se utiliza el negro
$black = ImageColorAllocate($baseimagen, 0, 0, 0);
//Cargamos la primera imagen(cabecera)
$logo = ImageCreateFromPng("./imagen-estatica.png");
//Unimos la primera imagen con la imagen base
imagecopymerge($baseimagen, $logo, 0, 0, 0, 0, 300, 89, 100);
//Cargamos la segunda imagen(cuerpo)
$ts_viewer = ImageCreateFromPng("http://www.ejemplo.com/imagen-dinamica-externa.png");
//Juntamos la segunda imagen con la imagen base
imagecopymerge($baseimagen, $ts_viewer, 0, 90, 0, 0, 468, 120, 100);
//Mostramos la imagen en el navegador
header("Content-Type: image/png");
ImagePng($baseimagen);
//Limpiamos la memoria utilizada con las imagenes
ImageDestroy($logo);
ImageDestroy($ts_viewer);
ImageDestroy($baseimagen);
?>

Si lo deseas puedes descargar el código fuente: 

El resultado seria el siguiente:

TS Mega Manuales

Un pensamiento en “Unir, juntar o pegar imágenes con PHP

Deja una respuesta

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

Notificación de comentarios

Si se suscribirse cuando se publique un nuevo comentario se le notificará por correo electrónico, de esta forma podrá estar informado de todos los comentarios y podrá ver si han respondido al suyo.

También puedes suscribirte sin comentar.