Uso de Automator para cultivos por lotes con coordenadas/medidas personalizadas

Estoy tratando de recortar grandes lotes de imágenes automáticamente. Actualmente estoy usando la acción Recortar imágenes de Automator, pero carece de opciones. Puedo especificar un ancho y alto, y luego realiza un recorte centrado. Quiero poder especificar X e Y, así como el ancho y el alto (para usar los términos de Xcode), para poder realizar un recorte consistente para cualquier rectángulo personalizado. ¿Existen acciones de recorte mejores y con más características disponibles? Preferiblemente gratis... :)

Respuestas (2)

Esta es una manera de lograr lo que desea con ImageMagick . Con suerte, se siente cómodo usando Terminal (y también usa Homebrew para administrar todos sus paquetes).

De cualquier manera, debe instalar ImageMagick para poder ejecutar convertla línea de comandos en la Terminal.

  1. Abra la carpeta en la que desea procesar por lotes todas las imágenes. Si el nombre de su carpeta llamado imágenes se encuentra en el escritorio, deberá ingresar cd ~/Desktop/images/en la Terminal.

  2. ImageMagick tiene una opción integrada para recortar imágenes según tamaños y coordenadas. El comando es:

     convert <input documents> <width>x<height>+<pos x>+<pos y> <output filepath>
    

Recortar imágenes con ImageMagick

Si quiero recortar todas las imágenes en:

  • Ancho: 300px
  • Altura: 500px
  • Posición X: 100 px desde la parte superior izquierda
  • Posición Y: 70px desde arriba a la izquierda

Puedo ingresar el siguiente comando:

convert *.jpg -crop 300x500+100+70 result/screenshot.jpg

Asegúrese de que exista la ruta del archivo de destino. En este caso, debe crear una carpeta llamada resultEscritorio. O puede usar una ruta absoluta como ~/Desktop/resulto cualquier carpeta que desee señalar. Simplemente arrastre la carpeta a la Terminal de esta manera:

Arrastrando Carpeta a la Terminal

Intenté esto pero solo cambió el tamaño de una imagen. Me tomó un tiempo darme cuenta de que la ruta debe incluir un nombre de archivo. Quería los archivos en ./done, así que tuve que usar la ruta de resultados como ./done/cropped.pngpara obtener archivos cropped-0.png, cropped-1.pngy así sucesivamente. ¿Cómo puedo mantener el nombre de archivo original?
Oh, usa mogrifyen lugar de convert.

ImageMagick convertfuncionó para mí, pero solo después de que lo envolví en un ciclo for:

for filename in *.jpg; do\
  convert $filename -crop {height}x{width}+{position-x}+{position-y} "result/$filename"
  echo "$filename done"
done