¿Cuál es un buen programa para redimensionar por lotes 100.000 imágenes jpg?

El programa debe ejecutarse en modo por lotes para cambiar el tamaño de todos los archivos en una carpeta y luego guardar nuevos archivos en una carpeta diferente. Una opción para configurar la calidad jpg también sería genial.

Una combinación de find e ImageMagic.

Respuestas (11)

Estoy un poco sorprendido de que nadie haya mencionado la opción más fácil, económica y menos técnica:

Automatizador

Primero, abre Automator, que está en tu carpeta de Aplicaciones.

A continuación, elija crear un nuevo flujo de trabajo:

Crear un flujo de trabajo automatizado

A continuación, agregue los siguientes pasos al flujo de trabajo arrastrando y soltando:

pasos del flujo de trabajo

Cuando ejecuta esto, Automator va a:

  1. aparece una ventana que le pide que seleccione algunos archivos (tantos como desee)
  2. aparece otra ventana que le pregunta dónde desea guardar las copias redimensionadas
  3. preguntarle qué tamaño desea que tengan las copias redimensionadas. Podrás elegir un tamaño fijo o un porcentaje. Todas las imágenes serán redimensionadas a ese tamaño o por ese porcentaje.

(La casilla de verificación "mostrar esta acción cuando se ejecuta el flujo de trabajo" significa que el flujo de trabajo se pausará, mostrará la opción y le permitirá cambiarla en ese momento)

Una vez que hagas eso, Automator se batirá y se quemará, y cuando termine, te pitará.

Desafortunadamente, no parece tener una opción para elegir la calidad JPEG. Sin embargo, por el precio (gratis), es bastante conveniente.

Quizás sea lo menos técnico para alguien que no usa Terminal. Y posiblemente la más fácil, pero no es la más barata de las respuestas aquí. Sips está incluido en la versión Unix de Mac. Y ImageMagick también es gratis.
Es seguro asumir que Automator es, para los fines de esta discusión, gratuito porque es razonable suponer que @mototribe está ejecutando OS X. Mi única preocupación sería qué tan bien manejaría Automator 100,000 imágenes pero, asumiendo que no están todas en una sola carpeta, simplemente seguiría alimentándola una carpeta a la vez hasta que estuviera lista. He ejecutado este mismo flujo de trabajo contra cientos de imágenes sin dificultad. No veo ninguna razón por la que no funcione contra muchos miles, ya que cada imagen se envía una a la vez, pero estaría en el modo de confianza pero verificación.
Sí, Automator hizo el trabajo a la perfección. Vine aquí pensando "Encontré una utilidad de línea de comandos que cambiaría el tamaño de las imágenes por lotes"... A veces, la solución más fácil también es la mejor. Salud.

Me gusta usar ImageMagick. sipsy Automator (que utilizan un método de cambio de tamaño idéntico) hacen que las imágenes se vean demasiado borrosas sin nitidez adicional en mi opinión.

Puede instalar ImageMagick brew install imagemagickdespués de instalar Homebrew o sudo port install imagemagickdespués de instalar MacPorts . Luego ejecute un comando como este:

mogrify -filter lanczos2 -resize '500x500>' -format jpg -quality 90 -path /tmp/ *.jpg

500x500>hace que las imágenes sean más anchas o altas que 500 px y se ajusten a 500x500 px. 500xsiempre cambiaría el ancho a 500 px y 500x500^haría que todas las imágenes tuvieran al menos 500x500px. -path /tmp/guarda los archivos de salida en /tmp/lugar de modificar los archivos en su lugar.

Lanczos2o el Lanczos de 2 lóbulos es muy similar a Catrom. En comparación con Lanczos( Lanczos3), son ligeramente menos nítidos, producen menos artefactos de timbre y producen más patrones de Moiré. El filtro predeterminado para hacer las imágenes más pequeñas es Triangle, que a menudo hace que las imágenes sean demasiado borrosas en mi opinión.

-quality 100crea archivos aproximadamente el doble de grandes -quality 95, lo que crea archivos aproximadamente el doble de grandes que -quality 88.

Más información:

http://www.imagemagick.org/Usage/resize/
http://www.imagemagick.org/Usage/filter/
http://lri.me/shell1.txt

Aquí hay un comando similar que usa sips:

for f in *.jpg; do sips -Z 500 -s format jpeg -s formatOptions 80 "$f" /tmp/; done

-Z 500es como 500x500>en ImageMagick.

Si otros tienen menos de 100 000 imágenes, también puede usar Vista previa:

Preview solía usar el mismo método de cambio de tamaño que sipsAutomator, pero ha usado uno diferente desde 10.7. Lanczos2Sin embargo , prefiero ImageMagick .

Cargué una comparación de las diferentes opciones en http://19a5b0.s3-website-us-west-2.amazonaws.com/imagemagick-osx-resizing/index.html .

Me gustaría advertirle que use mogrify: ¡esto convierte los archivos en el lugar, sobrescribiendo los originales! Si algo sale mal, ¡has perdido tus archivos! Mejor uso convert(también de ImageMagick).
@KurtPfeifle No lo hace si especifica la -pathopción (que convertactualmente no tiene).
Si buscas velocidad, entonces sipsquizás sea la mejor opción. En una prueba rápida con 1000 JPG, ~5 MB, cambiar el tamaño a 800 px de ancho tomó ~1 min. con sipsy ~8 min. with mogrify(con buffers de disco purgados, usando GNU Parallel en un quadcore).

ImageMagick es un programa de interfaz de línea de comandos y está hecho para este propósito. El uso y la instalación de ImageMagick pueden intimidar, pero este paquete de manipulación de imágenes es el más poderoso que he encontrado hasta ahora. Como la instalación desde la fuente puede ser una molestia para los usuarios nativos de OS X, le aconsejo que use Homebrew .

Para instalar ImageMagick usando Homebrew , ejecute este oneliner en su terminal:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Homebrew ahora está instalado, es aconsejable seguir las sugerencias del instalador después de la instalación. Ahora instalamos ImageMagick usando brew.

brew install imagemagick

ImageMagick ahora está instalado y su convertprograma puede usarse para su propósito. Para convertir una imagen jpg grande en una imagen png más pequeña, puede ejecutar

convert input.jpg -geometry 800x600 output.png

Para responder a su pregunta "Cómo cambiar el tamaño de todos los archivos en una carpeta y guardarlos en una carpeta diferente", puede ejecutar el siguiente script.

# create output dir
mkdir -p "../resized"

# Convert all .jpg files in the current folder
for image in *.jpg; do
    convert $x -geometry 800x600 resized/$x
done

ImageMagick puede convertir más de 100 formatos de imagen diferentes, y casi todos los trucos que puede hacer con Photoshop los puede hacer con ImageMagick.

gracias, eso es lo que terminé usando; sin embargo, lo instalé en Drupal ya que estoy importando las imágenes a Drupal.
@the_karel, acabo de mejorar tu publicación anterior. Espero que no te importe.

Varias personas han mencionado ImageMagick. Aquí hay una receta: para simplificar, suponga que todos los archivos están en una carpeta (y la carpeta no contiene nada más). Abra una ventana de terminal, cd en esta carpeta, luego ejecute

mkdir ../resized
for x in *.jpg; do convert -geometry 800x600 $x ../resized/$x

donde reemplazas el 800x600 por el tamaño que quieras.

Las ventajas incluyen una gran cantidad de flexibilidad en ImageMagick convert, como la capacidad de seleccionar diferentes configuraciones de calidad para la imagen de destino, o configurar la opción de cambio de tamaño por porcentajes. O puede usar -geometry 800x800, en cuyo caso se conservará la relación de aspecto, pero el máximo de ancho y alto será de 800 píxeles.

Las desventajas son las obvias: requiere cierta familiaridad con la línea de comandos, además de la voluntad de explorar las opciones de la línea de comandos convertpara obtener la configuración que desea. Esta no es una tarea para los débiles de corazón.

Segundo GraphicConverter . Soy usuario registrado desde hace 16 años. Su objetivo principal es la edición de imágenes por procesamiento por lotes y tiene una buena interfaz de usuario para diseñar flujos de trabajo personalizados y guardarlos.

También puede usarlo junto con Automator, pero probablemente no sea necesario.

Aquí hay información de la página de GraphicConverter que explica sus funciones de edición de imágenes de procesamiento por lotes .

Conversión por lotes con funciones adicionales

GraphicConverter le ofrece un procesamiento por lotes sofisticado que automatiza por completo las tareas repetitivas aplicadas a una selección de imágenes:

  • Convierta todas las imágenes de origen seleccionadas fácil y rápidamente a un nuevo formato, independientemente de si hay 5 o 5000 archivos de imágenes; solo define el tipo de conversión y establece los detalles
  • Durante el proceso de conversión, puede aplicar hasta 60 funciones por lotes adicionales, como rotación, cambio de tamaño, cambio de resolución, etc.
  • Automatice la eliminación de Mac OS Ressourcefork antes de que se carguen los documentos si hay problemas de compatibilidad cuando los archivos de imágenes se colocan en Internet.
  • Cree catálogos en formato HTML para su publicación en Internet y ajuste los colores, tamaños, etc. a sus requisitos individuales (ver ejemplos)
  • Cambie el nombre de una selección de documentos según criterios especiales de forma rápida y sencilla
  • Unir imágenes (por ejemplo, para QuickTime VR)
  • Inserte o extraiga información IPTC dentro o fuera de una variedad de formatos de documentos
  • y mucho más ...

ingrese la descripción de la imagen aquí

Este es otro script de cambio de tamaño de imagen por lotes simple, limpio y efectivo. Si trabaja mucho con gráficos y diferentes resoluciones, puede usar este script y guardarlo con diferentes valores para usos ocasionales.

Hágalo cambiando este valor de target_width 120 según sus necesidades y guarde el script. Ahora arrastre su(s) imagen(es) al archivo de script guardado para comenzar a cambiar el tamaño de su(s) imagen(es).


Abra el Editor de secuencias de comandos y cree la siguiente secuencia de comandos nueva:

-- save in Script Editor as Application
-- drag files to its icon in Finder

on open some_items
  repeat with this_item in some_items
    try
      rescale_and_save(this_item)
    end try
  end repeat
end open


to rescale_and_save(this_item)
  tell application "Image Events"
    launch
    set the target_width to 120
    -- open the image file
    set this_image to open this_item

    set typ to this_image's file type

    copy dimensions of this_image to {current_width, current_height}
    if current_width is greater than current_height then
      scale this_image to size target_width
    else
      -- figure out new height
      -- y2 = (y1 * x2) / x1
      set the new_height to (current_height * target_width) / current_width
      scale this_image to size new_height
    end if

    tell application "Finder" to set new_item to ¬
    (container of this_item as string) & "scaled." & (name of this_item)
    save this_image in new_item as typ

  end tell
end rescale_and_save

fuente original

La vista previa es sin duda una buena solución para algunos cambios de tamaño ocasionales. También hay otras buenas opciones gratuitas, como ImageMagic (utilidad de línea de comandos), Preview u otra cosa más Automator, etc.

Sin embargo, si esto es parte de su trabajo y necesita una verdadera flexibilidad, una aplicación especial le ahorrará mucho tiempo y le ofrecerá muchas más oportunidades. Muchos usuarios eligieron nuestro redimensionador de imágenes por lotes Resize Sense ( http://veprit.com/resizesense ) por su excelente flexibilidad y conveniencia.

Descargo de responsabilidad: soy el desarrollador. Será mejor que juzgues Resize Sense tú mismo. El video introductorio en el sitio web del producto le dirá exactamente qué es tan especial en Resize Sense. Hay una versión de demostración gratuita.

Convertidor gráfico

Lo mejor para esto..

¿Puede explicar por qué GC es la mejor opción?
Si bien esto puede responder teóricamente a la pregunta, sería preferible incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia.

Por lo general, importo todas las imágenes a iPhoto y luego las exporto a diferentes tamaños. Lo he hecho en lotes de 300 o más imágenes, pero nunca en la escala que deseas. Aún así, puede ser una opción.

Nadie ha mencionado Apple Aperture.

Si bien de ninguna manera es el más barato, viene con muchas otras cosas que pueden resultarle útiles. Básicamente reemplaza a iPhoto y algo más. Hace el 95% de lo que los fotógrafos suelen hacer con Photoshop. (No hará texto en llamas. :-)

Pero a menos que necesite las otras cosas que le ofrece Aperture, secundo tanto el enfoque de ImageMagick, si no se siente intimidado por la descarga, instalación y ejecución de programas de línea de comandos, como el enfoque de Automator, que a pesar de la afirmación de @markhunte, es gratuito. .

Uso vino (y XQuartz ) e IrfanView . Por supuesto, también podría usar imagemagick desde la línea de comandos. Para el vino y imagemagick recomendaría Homebrew .

irfanview en vino en OS X

He usado Irfanview durante más de 10 años en la PC y me encanta. ¿Pero no tienen una versión para Mac?
Sospecho que quieren decir que ejecutan IrFranView bajo el vino. Wine le permite ejecutar el software de Windows en otros sistemas operativos. Con Wine, puede instalar y ejecutar estas aplicaciones como lo haría en Windows. La captura de pantalla muestra claramente ventanas de tipo Mac (botones en la parte superior) con GUI de ventana de PC
Usar Wine con una aplicación de Windows es realmente una exageración para algo que puede hacer de forma nativa.