¿Herramientas para la optimización JPEG? [cerrado]


¿Conoce alguna herramienta (preferentemente de línea de comandos) para optimizar JPEG de forma automática y sin pérdidas que pueda integrar en nuestro entorno de compilación? Para PNGs actualmente estoy usando PNGOUT , y generalmente ahorra alrededor del 40% de ancho de banda/tamaño de imagen.

Por lo menos, me gustaría una herramienta que pueda eliminar los metadatos de los JPG - Noté un caso extraño en el que traté de hacer una miniatura de una fotografía, y no pude obtenerla más pequeña que 34 kB. Después de investigar más, encontró que los datos EXIF todavía eran parte de la imagen, y la miniatura era 3 kB después de eliminar los metadatos.

Y más allá de eso, ¿es posible optimizar aún más los JPG sin pérdidas? El optimizador PNG intenta diferentes estrategias de compresión, inicialización aleatoria de la codificación Huffmann, etc.

Soy consciente de que la mayoría de los ahorros provienen del parámetro de calidad JPEG, y que es una medida bastante subjetiva. Solo estoy buscando una herramienta que se pueda ejecutar como un paso de compilación y que comprime sin pérdida algunos bytes de las imágenes.

Author: chris166, 2009-06-12

14 answers

Uso libjpeg para operaciones sin pérdidas. Contiene una herramienta de línea de comandosjpegtran eso puede hacer todo lo que quieras. Con la opción de línea de comandos -copy none se eliminan todos los metadatos, y -optimize realiza una optimización sin pérdidas de la compresión Huffmann. También puedes convertir las imágenes a modo progresivo con -progressive, pero eso podría causar problemas de compatibilidad (¿alguien sabe más sobre eso?)

 66
Author: OutOfMemory,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-19 01:38:55

Escribí una interfaz gráfica de usuario para todas las herramientas de optimización de imágenes que pude encontrar, incluidas MozJPEG y jpegoptim que optimizan las tablas Huffman, los escaneos progresivos y (opcionalmente) eliminan los metadatos invisibles.

ImageOptim aplastándolo

Si no tienes un Mac, también tengo una interfaz web básica que funciona en cualquier plataforma.

 71
Author: Kornel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-07 12:34:10

[SOLO WINDOWS]

RIOT (Herramienta de Optimización de Imagen Radical) ¡Esta es la mejor herramienta de optimización de imágenes que he encontrado!

Http://luci.criosweb.ro/riot/

Puede obtener fácilmente una imagen de 10MB hasta 800KB a través del submuestreo. Es compatible con PNG, GIF y JPEG. Incluso se integra en menús contextuales para que pueda enviar imágenes directamente allí. Le permite rotar, cambiar el tamaño, comprimir a KB especificados, y más. También tiene plugins para GIMP e IrfanView y otras cosas.

También hay una DLL disponible si desea incorporarla en sus propios programas o en un programa java script / c++.

Otra alternativa es http://pnggauntlet.com / PNGGAUNTLET lleva una eternidad, pero hace un trabajo bastante bueno.

[SOLO WINDOWS]

 11
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-14 21:44:58

Un nuevo servicio llamado JPEGmini produce resultados increíbles. Es una pena que solo esté en línea. Editar: Ahora está disponible para Windows y Mac

 11
Author: Eduardo Molteni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-07 19:04:33

Probado una serie de las sugerencias anteriores - yo personalmente estaba después de la compresión sin pérdida.

Mi imagen de muestra tenía un tamaño original de 67.737 bytes.

Usando kraken.io, se redujo a 64.718 Usando jpegtran, bajó a 64,718 Usando yahoo smush-it, se redujo a 61,746 Usando imagemagick (- strip), se redujo a 65,312

El smush.py opción parece prometedor, pero la instalación era demasiado compleja para mí para hacer rápidamente

Jpegrescan también parece prometedor, pero parece ser unix y estoy usando windows

Jpegmini NO es sin pérdidas, pero no puedo decir la diferencia (hasta 22,172)

La aplicación Altrasoft jpegstripper de Plinth no funciona en mi windows 7

Jpegoptim no es windows-no es bueno para mí

Riot (manteniendo la calidad al 100%) lo redujo a 63,416 y con el submuestreo de croma establecido en alto, lo redujo a 61,912 - no se si eso es sin pérdidas o no, y creo que se ve más ligero que el original.

So mi veredicto es yahoo smushit si debe ser sin pérdidas

 10
Author: Graham Butcher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-25 09:06:58

Probaría Imagemagick. Tiene toneladas de opciones de línea de comandos, es gratis y tiene una buena licencia. http://www.imagemagick.org

Parece que hay una opción llamada Tira que puede ayudarle: http://www.imagemagick.org/script/command-line-options.php#strip

 9
Author: borjab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-12 09:43:02

ImageOptim es muy hábil. La opción de línea de comandos publicada por el autor llenará la GUI y mostrará el progreso. Utilicé jpegtran para optimizar y convertir a progresivo, luego ImageOptim para optimizaciones progresivas adicionales y para otros tipos de archivos.

Reutilización de código de script también se encuentra en este foro (todos los archivos reemplazados en su lugar):

Jpegtran

for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.jpeg" -or -name "*.JPG" \)); do
    echo found $file for optimizing...
    jpegtran -copy comments -optimize -progressive -outfile $file $file
done

ImageOptim

for file in $(find $DIR -type f \( -name "*.jpg" -or -name "*.png" -or -name "*.gif" \)); do
do
    echo found $file for optimizing...
    open -a ImageOptim.app $file
done
 7
Author: bsy-web,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-11 20:22:58

En caso de que alguien esté mirando, he escrito una versión sin conexión de Yahoo Smush.it. Optimizará sin pérdidas pngs, jpgs y gifs (animados y estáticos):

Http://github.com/thebeansgroup/smush.py

 4
Author: timmy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-24 11:03:59

Puede usar jpegoptim que optimizará sin pérdidas los archivos jpeg de forma predeterminada. La opción --strip-all elimina toda la información extra incrustada. También puede especificar un modo con pérdida con el interruptor --max que es útil cuando tiene imágenes guardadas con una configuración de calidad muy alta, que no es necesario para, por ejemplo. contenido web.

Se obtiene una optimización similar a la de jpegtran (ver respuesta por OutOfMemory) pero jpegoptim no puede guardar en jpeg progresivos.

 4
Author: bluegray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-01 11:02:29

He escrito una herramienta de línea de comandos llamada 'picopt' (similar a ImageOptim) que utiliza programas externos para optimizar JPEGs, PNGs, GIFS, GIFS animados e incluso contenido de archivo de cómics (CBR/CBZ).

Esto es adecuado para su uso con homebrew en sistemas OS X o Linux donde haya instalado herramientas como jpegrescan, jpegtran, optipng, gifsicle, etc.

Https://github.com/ajslater/picopt

 4
Author: AJ Slater,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-29 05:47:17

Yo también recomendaría ImageMagick. Tiene una opción de línea de comandos para eliminar los metadatos EXIF

mogrify -strip image.jpg

Hay muchas otras herramientas que hacen lo mismo.

En cuanto a la recompresión de JPEG, no lo hagas. Los JPEG tienen pérdidas para empezar, por lo que cualquier forma de recompresión solo dañará la calidad de la imagen. Sin embargo, si tiene imágenes codificadas sin pérdida, algunos codificadores hacen un mejor trabajo que otros. He notado que los JPEG hechos con Photoshop se ven consistentemente mejor que cuando se codifica con ImageMagick (a pesar del mismo tamaño de archivo) debido a razones complicadas. Además (y esto es relevante para usted), sé que al menos Photoshop puede guardar archivos JPEG como optimizado lo que significa que dejan de lado la compatibilidad con algunas cosas que probablemente no le importa guardar un par de KB. Además, asegúrese de que no tiene ningún perfil de color incrustado y es posible que pueda ahorrar otro par de KB.

 3
Author: David Johnstone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-12 10:11:31

Recomendaría usar http://kraken.io Es una aplicación web ultrarrápida que optimizará sus archivos PNG y JPEG mucho mejor que smush.it lo hace.

 2
Author: Pono,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-12 09:40:16

Recomiendo usar JpegOptim, es gratis y muy agradable, puede especificar la calidad, el tamaño que desee ... Y fácil de usar en línea de comandos.

JpegOptim

 1
Author: agonist_,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-06 15:46:15

Puedo recomendar esto para casi transparencia:

convert 'yourfile.png' ppm:- | jpeg-recompress -t 97 -q veryhigh -a -m smallfry -s -r -S disable - yourfile.jpg

Utiliza imagemagick's convert y jpeg-recompressde jpeg-archive.

Ambos son de código abierto y funcionan en Windows, Mac y Linux. Es posible que desee ajustar las opciones anteriores para diferentes expectativas de calidad.

 1
Author: Camilo Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-22 09:17:48