Crear collage de imagenes de diferente tamaño con ImageMagick

Crear collage de imagenes de diferente tamaño con ImageMagick

Tengo una lista de imágenes de diferente tamaño, normalmente de tamaño más largo que de ancho. Tenía la intención de generar una sola imagen que llevara varias pero que fuesen del mismo ancho y alto. El comando más adecuado para esta tarea es montage de ImageMagick. Escribí un un script en PHP que lee las diferentes imágenes y luego las pega en una sola:

<?php
   /* @toro https://tar.mx */ 
   $images = ["1.jpg","2.jpg","3.jpg","4.jpg"]; //arreglo de imágenes
   $tmps = []; //imagenes temporales 
   //convertimos y cortamos a 500px por 500px
   foreach($images AS $k) {
      $tmp = tempnam("/tmp","test").".jpg";
      $tmps[]=$tmp;
      $cmd = "convert -resize 500 -crop 500x500+0 $k $tmp";
      $cmd = `$cmd`;
   }
   $final = "/tmp/final.jpg"; //collage
   // generamos un collage de 3x3
   $cmd = "montage ".implode(" ",$tmps)." -geometry +1+1 -tile 2x2 ".$final;
   $cmd = `$cmd`;
   //eliminamos los archivos temporales
   foreach($tmps as $k) { unlink($k); }

Eso es todo, ahora tendríamos /tmp/final.jpg como un collage de 2x2 con imágenes cuadradas (de 500x500) y sería algo similar a la imagen de este escrito, que fue de 3x3. Como vemos, ImageMagick es una herramienta muy poderosa para hacer muchas cosas en línea de comandos.

+ fotos / videos

Almacenado en Software, imagemagick, PHP

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Crear collage de imagenes de diferente tamaño con ImageMagick

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado martes 13 de julio de 2021, 13:08

cuentame