Estoy buscando el convertidor de imágenes de línea de comandos más rápido para Linux que pueda leer una imagen JPEG, reducirla a 1366x768 como máximo y escribir una imagen JPEG de calidad 50. Algo así, pero mucho más rápido que ImageMagick:
$ convert -resize x768 -quality 50 foo42.jpg foo42.th.jpg
# takes 0m16.713s for my test image set
También he intentado esto:
$ <foo42.jpg djpeg | pnmscale -xysize 1366 768 | cjpeg -quality 50 >foo42.th.jpg
# takes 0m12.007s for my test image set, and has lower visual quality than ImageMagick
Por lo tanto, me gustaría tener un programa, preferiblemente escrito en C, que integre djpeg, una versión de mayor calidad de pnmscale y cjpeg.
Acabo de encontrar swiggle (un programa en C que usa libjpeg), deshabilité algunas de sus funciones que no necesito en el código fuente, y obtuve:
$ swiggle -f -H 768 .
# takes 0m11.378s for my test image set, yields high quality results
¿Tienes otra sugerencia? Supongo que la mayoría de los convertidores de imágenes usan libjpeg, por lo que sería difícil obtener resultados mucho más rápidos que swiggle.
Respuestas:
La biblioteca más rápida que he usado hasta ahora es definitivamente EPEG . Solo puede crear pulgares a partir de archivos JPG, pero los crea muy rápido:
Imagemagick:
EPEG:
Usé esta biblioteca para crear pulgares para una gran cantidad de imágenes realmente grandes.
fuente
He resuelto este problema descargando swiggle (una miniatura de línea de comandos JPEG en miniatura + generador de galería de imágenes HTML) y modificando su fuente para mis necesidades. Vea las mediciones de velocidad en la pregunta (menos del 10% más rápido que djpeg + pnmscale + cjpeg).
fuente