unirse a múltiples imágenes png

A menudo me encuentro en la necesidad de tomar muchas imágenes PNG y unirlas en una imagen más grande.

Específicamente, en este caso particular, me gustaría tomar 2 PNG de aproximadamente el mismo ancho (±2 px) y diferentes alturas y crear un nuevo PNG donde el primero esté encima del otro. P.ej

ingrese la descripción de la imagen aquí

La unión debe ser perfecta.

¿Hay alguna herramienta/aplicación de línea de comandos que haga esto? Lo mejor sería que Preview ofreciera una solución.

sipses lo más parecido que conozco, pero no creo que esto haga lo que quieres. ¿Tiene algún problema usar un programa de edición de fotos como GIMP?
@ JMY1000 Espero que haya un método nativo o algún script de terminal simple de una sola línea. Usar GIMP para realizar esta sencilla tarea lleva una eternidad (iniciar GIMP, crear una nueva imagen de las dimensiones correctas, pegar los dos PNG). Tal vez haya una aplicación especializada que no sea nativa de macOS, no me importaría instalarla si hay era.
Me parece bien. No me doy cuenta de nada que se me pase por la cabeza.
En su OP, dijo: "Lo mejor sería si Preview ofrece una solución". Preview no tiene esa funcionalidad y tampoco la sipsmenciona en los comentarios. En su comentario, dijo: "Espero que haya un método nativo o algún script de terminal simple de una sola línea", que yo sepa, no hay ningún método nativo, pero eso no significa que no lo haya. La aplicación de terceros ImageMagic tiene un montagecomando para crear una imagen compuesta mediante la combinación de varias imágenes separadas. Es posible que primero tenga que rotar las imágenes usando algún otro comando de ImageMagic, o sips. No puedo decirlo con certeza porque no lo he usado.
@user3439894 Ya tengo instalado ImageMagick, buscaré el comando de montaje. :)

Respuestas (2)

ImageMagick puede hacer esto:

convert 1.png 2.png -append result.png

Las opciones de alineación se pueden especificar (opcionalmente) usando el -gravityinterruptor,

  • -gravity Eastalinear los bordes derechos
  • -gravity Westalinear los bordes izquierdos
  • -gravity centeralinear los centros

Nota: usar +appenden lugar de -appendunirá las imágenes horizontalmente (una al lado de la otra) en lugar de una encima de la otra.

+1 por regresar para compartir que ImageMagick podría hacer esto y cómo lo hiciste. :)
¿Hay alguna forma de vincular alguna interacción de tipo gui aquí? Encuentro que la mayoría de las veces quiero convertir capturas de pantalla con nombres largos que son difíciles de distinguir de manera efectiva en la línea de comandos. Sería bueno si pudiera elegir las imágenes que quiero combinar a través del buscador, y luego se ejecuta el resto de este script.
@Rey escriba converty luego arrastre y suelte los archivos desde el buscador a la terminal
@Rey: agregué una respuesta para abordar su pregunta: apple.stackexchange.com/a/395488/136164

Si desea hacer esto completamente en Finder, puede crear un servicio de Automator y ejecutarlo como un servicio a través del menú contextual.

  1. abrir Automator.app
  2. Nuevo > Servicio
  3. El servicio recibe los "Archivos de imagen" seleccionados en "Finder.app"
  4. agregar Utilidades > Ejecutar secuencia de comandos de Shell
  5. ingrese el script que se muestra a continuación (incluya la nueva línea final)
  6. Guardar como "Anexo de imagen - Vertical" (se guarda en ~/Librería/Servicios/Anexo de imagen - Vertical.workflow)

Para ejecutar: seleccione dos o más imágenes en Finder, haga clic con el botón derecho en > Servicios > Agregar imagen - Vertical

Se creará un nuevo archivo con el nombre de la primera imagen con el sufijo "v" antes de la extensión del archivo.

Guión de bash:

#!/bin/sh
DIR=$(dirname -- "$1")
FILE=$(basename -- "$1")
NAME="${FILE%.*}"
EXT="${FILE##*.}"
# call ImageMagick with selected files and create new file with "v" suffix
convert "$@" -append "${DIR}/${NAME}v.${EXT}"
# GraphicsMagick version (smaller & faster than ImageMagick)
#/opt/local/bin/gm convert "$@" -append "${DIR}/${NAME}v.${EXT}"

Captura de pantalla de Automator (macOS High Sierra):

Captura de pantalla de Automator.app