it-swarm-es.com

Unir una foto debajo de un lote de fotos

Estoy seguro de que habría un comando simple para esto, sin embargo, no he podido encontrar uno.

Básicamente me gustaría unir una foto debajo de otra sin superposición. También, idealmente, me gustaría un comando que pueda automatizar este proceso para 200 imágenes superiores donde se une la misma imagen inferior. Todas las imágenes tienen el mismo ancho, por lo que no se requiere transformación.

Estoy buscando un programa similar a "stitch -below top.png bottom.png", he explorado opciones como Montage pero parece que no puedo hacer que funcione como es necesario. Buscando consejo.

6
User

Primero necesitas abrir una terminal y Sudo apt-get install imagemagick.

Ahora coloque todas sus imágenes en la misma carpeta para que pueda acceder fácilmente a ellas desde la terminal. Coloque todas las imágenes superiores en su propia carpeta y mantenga la imagen inferior en otro lugar para simplificar las cosas.

Escriba cd DIRNAME, necesita reemplazar DIRNAME con el nombre de la carpeta en la que están almacenadas las imágenes, por ejemplo /home/mark/collating es lo que uso para este propósito.

Ahora que su Shell está en la carpeta correcta e imagemagick está instalado, usamos lo siguiente para unir las imágenes:

convert -append image1.jpg image2.jpg output.jpg

Esto tomará las dos imágenes llamadas image1 e image2 y pegará image2 en la parte inferior de image1, guardando el resultado como un archivo llamado output.jpg.

Para automatizar esto, puede usar un script como este. Debe cambiar las variables para que apunten a los lugares correctos.

#! /bin/bash

#   Replace the values of these variables with the locations of your tops and the bottom.
# The output directory must already exist!
#   "~/" is a shortcut for your home dir, FYI.

TopsDir="~/collating/tops" #Only the TOP images should be in this folder!
BottomImg="~/collating/bottom.png"
OutputDir="~/collating/complete"

[ -d "$TopsDir" -a -d "$OutputDir" ] && [ -f "$BottomImg" ] || { echo "One of the paths you supplied wasn't valid."; exit 1;}

cd "$TopsDir"

for TopImg in *; do
    convert -append "$TopImg" "$BottomImg" "$OutputDir/$TopImg"
done

Cópielo y péguelo en gedit o en su editor de texto y edite las variables para que apunten a las carpetas correctas. (O archivo para la img inferior). Guárdelo como collator.sh. Es conveniente para los próximos pasos si lo guarda en su directorio personal.

Ahora abra una terminal y navegue hasta donde guardó el archivo. (Ya está allí si lo guardó en su directorio de inicio; de lo contrario, escriba cd /path/to/your/location) Escriba chmod +x collator.sh para otorgar permisos de ejecución al archivo.

Y ahora hacemos el trabajo:
Escriba ./collator.sh para ejecutar el script; y tu estas listo.

4
Mark Paskal