Me gustaría combinar varias imágenes en una imagen usando ImageMagick. Para explicar un poco mejor, quiero que el resultado sea 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, me he encontrado con el comando 'compuesto', pero no sé si, y en ese caso, cómo usarlo para obtener el resultado que quiero.
imagemagick
image-processing
Petter
fuente
fuente

Respuestas:
Para cualquier cantidad de archivos de entrada nombrados :
in-<something>.jpgPara agregar archivos específicos u omitir números en lugar de obtener el "glob" completo, puede mencionar los archivos de entrada explícitamente y colocar el
appendcomando después.Puede usar
-append(en lugar de+append) para pegar verticalmente.O:
también creará un archivo
out.jpgque contiene una concatenación vertical de las imágenes de origen.convertPara una concatenación simple en una sola fila o columna, la
appendopción de laconvertherramienta es suficiente. Tenga en cuenta que-appendconcatena todas las imágenes verticalmente, creando una columna con n filas, y+appendconcatena horizontalmente, creando una fila con n columnas.(Consulte ImageMagick: Opciones de línea de comandos ).
montagePara obtener un control más preciso sobre el diseño, necesitaríamos la
montageherramienta.montage -mode concatenatepegará las imágenes de entrada juntas como laappendopción y-tile 1xcontrolará el diseño que se aplicará.tilesigue las columnas de formato × filas , pero puede faltar cualquiera de los lados ymontagedescubrirá cómo cumplir con las restricciones.Estamos usando
1x(exactamente una columna con cualquier número de filas) aquí para obtener el mismo efecto que-append. Sin-tile 1x, se uniría a las imágenes como+append, por defecto-tile x1(cualquier número de columnas en una fila).(Consulte los ejemplos de ImageMagick: montaje, matrices de imágenes ).
fuente
convert -append `counter=0; for x in in-*; do if [[ $(($counter % 2)) == 0 ]]; then echo $x; fi; counter=$((counter + 1)); done` out.jpgdebería hacer el trabajo.convert -tile 2x2comando etc. leerá los archivos alfabéticamente . Esto significa que los fragmentos nombrados0-10se leerán como0,10,1,2,..,9. Me llevó casi 2 horas darme cuenta de algo tan básico.ls *, devolverá esos valores en ese orden.