Crear collage de imagenes de diferente tamaño con ImageMagick

portadas impresas mexico

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.

Aquí puedes ver las fotos del post

Almacenado en Software, imagemagick

por Jorge Martínez Mauricio :)



¿Algo que comentar?


Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊

¿Ya conoces los foros de tar?

Relacionadas

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