redimensionador rápido de imágenes por lotes [cerrado]

10

buscando y no puedo encontrar el perfecto.
Tengo 100 conciertos de secuencia de imagen 4K para procesar.

encontrado imagizer2 en sourceforge. multiproceso pero no 64 bits (¿importa?).
Supongo que el más rápido usará la lib de núcleo de imagen IPP de Intel.

Estoy en Windows, pero si hay alguna opción de Linux rápido y loco disponible, lo consideraré (¿puntos de referencia?).

benchmarks incluidos que ejecuté en un lote de prueba de 100 archivos de 5k (4.3MB)

yoshco
fuente
Mencionó la secuencia de imágenes: ¿desea procesar imágenes individuales o combinarlas en secuencias de video? Si es lo último, haría las transformaciones durante la producción con virtualdub.
Andy Lee Robinson
sí, mi plan original era hacer todo esto en línea de comando usando ffmpeg, ffmpeg -i d:\g\25\g_%%04d.jpg -r 15 -s hd720 -vcodec libx264 -fpre "libx264-hq.ffpreset" -crf 16 Day01_720.mp4 pero fmpeg está codificado para admitir imágenes que no superen los 5012 píxeles. De ahí el cambio de tamaño.
yoshco
De hecho, prefiero avisynth para el trabajo de secuencia de imágenes, es tan poderoso.
yoshco
Penny drops! ¡Imágenes de calidad de película de línea 4K, no imágenes de 4kb! Sí, avisynth es excelente y se suministra con doblaje virtual. ffmpeg es de código abierto, por lo que el límite de 5012 píxeles se puede modificar y volver a compilar, o los autores podrían aumentar el límite predeterminado. No debería ser difícil.
Andy Lee Robinson
agregando más benchmakrs: VIPS y GraphicsMagick vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use
yoshco

Respuestas:

0

Grandes estadísticas: gracias por las referencias. Tal vez sea demasiado tarde, pero no mencionó los resultados de ImageResizer (de Codeplex) sugeridos con Batch Picture Resizer arriba. (no es lo mismo que el "crapware" mencionado). Comencé a usarlo después de que MS dejó de actualizar su Image Resizer. Pero ciertamente no tengo las necesidades de velocidad y volumen, solo cambia el tamaño limpio y rápido para los archivos adjuntos de correo electrónico y tal.

David
fuente
gracias, perdí el conjunto de datos original, pero en un conjunto comparable parece que esto es una locura rápida. lástima que no sea programable (pero el código fuente está disponible, así que ...)
yoshco
5

Estoy usando IrfanView para convertir 1 GB de archivos tiff a GIF más pequeños cada noche. Toma solo unos minutos.

Un comando de muestra se vería así (lo uso para convertir imágenes para mi pantalla digital)

"C:\Program Files (x86)\IrfanView\i_view32.exe" "C:\Pictures\Best\*.jpg" /resample=(720,540) /aspectratio /convert="C:\Temp\miniDisp\*_rsz.jpg"

Esto cambia el tamaño de todos los archivos JPG de C: \ Picutres \ Best \ a 720x540 y los guarda como C: \ Temp \ miniDisp \ OrgFilename _rsz.jpg.

Los cambios de línea de comando que IrfanView entiende se pueden encontrar dentro de la ayuda en línea (ver Índice - Opciones de línea de comando) o en línea aquí

Tex Hex
fuente
Irfan también es mi herramienta diaria, pero irfan = 80 segundos para la misma prueba.
yoshco
Bueno, eso es realmente largo en comparación con los otros programas. Gracias por las pruebas.
Tex Hex
Irfanview también es mi visor y procesador por lotes de elección, aunque virtualdub también es una herramienta esencial. Podría usarse para combinar secuencias de imágenes en un video con el beneficio de la compresión delta, y una imagen podría recuperarse indexando un cuadro.
Andy Lee Robinson
5

No estoy seguro de cómo se comparará en el departamento de referencia, pero es posible que desee probar ImageMagick utilizando las herramientas "convertir" o "mogrify". Parece que hace un buen uso de 64 bits, número de núcleos y demás.
Todo lo que sé es que es realmente potente y está lleno de funciones. Puedo cambiar el tamaño en el lugar o agregar opciones como filtros de remuestreo y conversiones de tipos de archivos.

mogrify -format jpg -filter Cubic -resize 20%x20% rgb-?.png
Dennis
fuente
Me encanta cmd, pero también soy adicto a la prueba ... mageMagick-6.7.1-Q16x64 = 149sec
yoshco
Supongo que no me sorprende, ya que parece que ImageMagick es más la navaja suiza que el bisturí. Bien hecho en la pregunta y los puntos de referencia.
Dennis
4

Mira estos programas:

  1. Batch Picture Resizer .
  2. Resizer de imagen .

Cambiar el tamaño de las imágenes utilizando archivos por lotes : Cambiar el tamaño del lote .

TookTheRook
fuente
2
tomé 100 fotos de 5k: redimensionador de imágenes por lotes = 30 segundos imagizer2 = 64 segundos
yoshco
Pruebe este: Fast Image Resizer ( adionsoft.net/fastimageresize ). Este también parece prometedor : viousidea.com/windows-software/light-image-resizer
TookTheRook
1
Tamaño
light-image-resizer es basura
yoshco
Publicidad falsa entonces. Pruebe el método por lotes que puse en el comentario editado. Si eso no ayuda, me quedo sin opciones. De lo contrario, si el cambio de tamaño de la imagen por lotes tardó 30 segundos, para cambiar el tamaño de 500 MB de palabras de imágenes (suponiendo que cada una de las 100 imágenes fuera de 5 Mb. Ea), debería llevar 1 hora y 40 minutos cambiar el tamaño de todos los 100 GB de imágenes que tener. ¿Eso no es tan malo?
TookTheRook
1

Paralelo se puede utilizar para acelerar las conversiones por lotes con imagemagick.

Reduzca cada * .jpg en un directorio de modo que ni la altura ni el ancho sean mayores de 1080 píxeles:

parallel mogrify "{}" -resize 1080x1080 ::: *.jpg

Usando convertir para crear archivos separados más pequeños:

parallel convert "{}" -resize 1080x1080 "{.}-small.jpg" ::: *.jpg

Tenga en cuenta que esto se aplica a GNU paralelo, no a la versión empaquetada en moreutils de Debian, que tiene una sintaxis diferente y menos características. Consulte la página del manual para obtener más información sobre paralelo.

maldad
fuente
0

vips es más rápido, para mí:

$ header sample.jpg 
sample.jpg: 8888x5000 uchar, 3 bands, srgb, jpegload
$ for i in {1..100}; do cp sample.jpg t$i.jpg; done
$ time vipsthumbnail --size 1280 t*
real  0m14.672s
user  0m17.631s
sys   0m0.988s

La velocidad está limitada por la codificación / decodificación jpeg, que (gracias a libjpeg) es de un solo subproceso. Puede hacerlo funcionar un poco más rápido si ejecuta varios vips en paralelo:

$ mkdir a b c d e
$ for j in a b c d e; do for i in {1..20}; do cp sample.jpg $j/t$i.jpg; done; done
$ time (for i in a b c d e; do vipsthumbnail --size 1280 $i/t* & done; wait)
real  0m5.258s
user  0m18.557s
sys   0m0.891s

Esto está en un imac 2012, pero también hay binarios de Windows.

http://www.vips.ecs.soton.ac.uk/supported/current/

jcupitt
fuente