¿Qué es un buen programa para redimensionar lotes de 100,000 imágenes jpg?

21

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

uwe
fuente
2
Una combinación de find e ImageMagic.
mspasov

Respuestas:

30

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

Automator

Primero, abra Automator, que se encuentra en la carpeta Aplicaciones.

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

Crear un flujo de trabajo del automatizador

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

pasos del flujo de trabajo

Cuando ejecute esto, Automator va a:

  1. abrir una ventana pidiéndole que elija algunos archivos (tantos como desee)
  2. aparecerá otra ventana preguntándole dónde desea guardar las copias redimensionadas
  3. preguntarte qué tan grande quieres que sean las copias redimensionadas. Podrá elegir un tamaño fijo o un porcentaje. Todas las imágenes se redimensionarán a ese tamaño o en 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 detendrá, mostrará la opción y le permitirá cambiarla luego)

Una vez que hagas eso, Automator se revolverá y quemará, y cuando termine, te emitirá un pitido.

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

Dave DeLong
fuente
Quizás sea el 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 compilación Unix de Mac. Y ImageMagick también es gratis.
markhunte
3
Es seguro asumir que Automator es, a 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 Automator manejaría 100,000 imágenes pero, suponiendo que no estén todas una sola carpeta, solo seguiría alimentando una carpeta a la vez hasta que se hiciera. Ejecuté este mismo flujo de trabajo contra cientos de imágenes sin dificultad. No veo ninguna razón por la que no funcionaría contra muchos miles, ya que cada imagen se empuja una por una, pero estaría en confianza pero verificaría el modo.
jaberg
Sí, Automator hizo el trabajo perfectamente. Vine aquí pensando "He encontrado 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 es también la mejor. Aclamaciones.
Silouane Gerin
19

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

Puede instalar ImageMagick con brew install imagemagickdespués de instalar Homebrew o con 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 más altas que 500px, se ajustan a 500x500px. 500xsiempre cambiaría el ancho a 500 px y 500x500^haría que todas las imágenes 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 un poco menos afilados, producen menos artefactos de sonido y producen más patrones de Moiré. El filtro predeterminado para hacer las imágenes más pequeñas es Triangle, lo que a menudo hace que las imágenes sean demasiado borrosas en mi opinión.

-quality 100crea archivos aproximadamente dos veces más grandes -quality 95, lo que crea archivos aproximadamente dos veces más 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:

La vista previa solía usar el mismo método de cambio de tamaño que sipsAutomator, pero ha usado uno diferente desde 10.7. Sin Lanczos2embargo, prefiero ImageMagick's .

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

Lri
fuente
1
Me gustaría advertirle que use mogrify: ¡esto convierte los archivos en su lugar, sobrescribiendo los originales! Si algo sale mal, ¡ha perdido sus archivos! Mejor uso convert(también de ImageMagick).
Kurt Pfeifle
1
@KurtPfeifle No lo hace si especifica la -pathopción (que convertactualmente no tiene).
Lri
Si buscas velocidad, entonces sipsquizás sea la mejor opción. En una prueba rápida con 1,000 JPGs, ~ 5 MB de redimensionamiento a 800px de ancho tomó ~ 1 min. con sipsy ~ 8 min. con mogrify(con las memorias intermedias de disco purgadas, usando GNU Parallel en un quadcore).
Stefan Schmidt
13

ImageMagick es un programa de interfaz de línea de comandos y está hecho para este propósito. El uso e instalación de ImageMagick puede ser intimidante, pero este paquete de manipulación de imágenes es el más poderoso que he encontrado hasta ahora. Como la instalación desde el origen 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 ya 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 se puede usar 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 lo puede hacer con ImageMagick.

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

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 reemplaza el 800x600 por el tamaño que desee.

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

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

Harald Hanche-Olsen
fuente
4

Yo segundo GraphicConverter . He sido un usuario registrado durante 16 años. Su propósito principal es la edición de imágenes de 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 necesite hacerlo.

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 completamente las tareas repetitivas aplicadas a una selección de imágenes:

  • Convierta todas las imágenes de origen seleccionadas de forma fácil y rápida en un nuevo formato, independientemente de si hay 5 o 5,000 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 de lote adicionales, como rotación, cambio de tamaño, cambio de resolución, etc.
  • Automatice la eliminación de Mac OS Ressourcefork antes de cargar 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 necesidades 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 (p. Ej., 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í


fuente
4

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

Hágalo cambiando este valor target_width 120 a sus necesidades y guarde el script. Ahora arrastre sus imágenes al archivo de script guardado para comenzar a cambiar el tamaño de sus imágenes.


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

v2r
fuente
3

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), Vista previa u otra cosa más Automator, etc.

Sin embargo, si esto es parte de su trabajo y necesita una verdadera flexibilidad, una aplicación de propósito especial le ahorrará mucho tiempo y le ofrecerá muchas más oportunidades. Muchos usuarios eligieron nuestro cambio de tamaño de imagen 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 demo gratuita.

VeprIT
fuente
2

Convertidor gráfico

Lo mejor para esto ...

Robert
fuente
77
¿Puedes explicar por qué GC es la mejor opción?
Nathan Greenstein
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
daviesgeek
1

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

Sinfonía sinestésica
fuente
1

Nadie ha mencionado Apple Aperture.

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

Pero a menos que necesite las otras cosas que Aperture le brinda, secundo el enfoque de ImageMagick, si no se siente intimidado por descargar, instalar y ejecutar programas de línea de comandos, y el enfoque de Automator, que a pesar de la afirmación de @ markhunte, es gratuito .

Jan Steinman
fuente
-1

Yo uso vino (y XQuartz ) e IrfanView . Por supuesto, también puede usar imagemagick desde la línea de comandos. Para vino e imagen, recomendaría Homebrew .

irfanview en wine en OS X

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