Pregunta Combina múltiples imágenes usando ImageMagick


Me gustaría combinar varias imágenes en una imagen usando ImageMagick. Para explicarlo un poco mejor, quiero que el resultado se vea similar a esto:

Es decir, tengo varias capturas de pantalla y quiero convertirlas en una imagen con las imágenes originales una encima de la otra.

Al buscar en Google, he encontrado el comando 'compuesto', pero no sé si, y en ese caso cómo usarlo para obtener el resultado que quiero.


144


origen


¿Has echado un vistazo? Ejemplos de capa de imagen múltiple de imagemagick? - timbooo
stackoverflow.com/questions/12076293/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


Respuestas:


Para cualquier cantidad de archivos de entrada llamado in-<alguna cosa>.jpg:

convert -append in-*.jpg out.jpg

Para agregar archivos específicos u omitir números en lugar de obtener el "glob" completo, puede mencionar explícitamente los archivos de entrada y colocar el append comando después

convertir in-1.jpg in-5.jpgnorte.jpg + append out-in1-plus-in5-and-innorte.jpg

Puedes usar -append (en lugar de +append) para el pegado vertical.

O:

montage -mode concatenate -tile 1x in-*.jpg out.jpg

también creará un archivo out.jpg que contiene una concatenación vertical de las imágenes de origen.

convert

Para la concatenación simple en una sola fila o columna, el append opción del convert herramienta es suficiente. Tenga en cuenta que -append concatena todas las imágenes verticalmente, creando una columna con norte filas, y +append concatena horizontalmente, creando una fila con norte columnas

(Ver ImageMagick: Opciones de línea de comandos.)

montage

Para tener un control más preciso sobre el diseño, necesitaríamos el montage herramienta. montage -mode concatenate pegará las imágenes de entrada juntas como append opción y -tile 1x controla el diseño que se aplicará.

tile sigue el formato columnas×filas, pero cualquier lado puede estar perdido y montage se dará cuenta de cómo cumplir con las limitaciones.

Estamos usando 1x (exactamente una columna con cualquier cantidad de filas) aquí para obtener el mismo efecto que -append. Sin -tile 1x, se uniría a las imágenes como +append, por defecto a -tile x1 (cualquier número de columnas en una fila).

(Ver Ejemplos de ImageMagick: montaje, matrices de imágenes.)


218



Gracias. append funciona bien, pero considero que el montaje está roto: si las fuentes ghostscript no están instaladas, rescatarán, INCLUSO si no está anotando las imágenes. Las fuentes se deben cargar a pedido, no de antemano. - Bram
@Bram: No lo sabía y estoy muy de acuerdo. ¿Sabes si GraphicsMagick se comporta de la misma manera? - peth
¿Cómo me saltaría todas las demás imágenes? Me gustaría analizar un subconjunto: en-1, en-3, en-5, etc. - Mike Robinson
@MikeRobinson convert -append `counter=0; for x in in-*; do if [[ $(($counter % 2)) == 0 ]]; then echo $x; fi; counter=$((counter + 1)); done` out.jpg debería hacer el trabajo. - gozzilli
@peth: tu respuesta comienza con un ejemplo convert comando que tiene -append  antes de nombres de archivos de entrada. Un usuario anónimo agregó un ejemplo con +append  después los nombres de los archivos de entrada. ¿Son ambos validos? Es el orden significativo? - Scott