web-dev-qa-db-fra.com

Outils d'optimisation JPEG?

Connaissez-vous des outils (de préférence en ligne de commande) pour optimiser automatiquement et sans perte les fichiers JPEG que je pourrais intégrer dans notre environnement de construction? Pour les fichiers PNG, j'utilise actuellement PNGOUT , et cela économise généralement environ 40% de bande passante/taille d'image.

À tout le moins, je voudrais un outil qui puisse retirer les métadonnées des JPG - j'ai remarqué un cas étrange où j'ai essayé de créer une vignette à partir d'une photo, et je n'ai pas pu la réduire à moins de 34 Ko. Après avoir approfondi mes recherches, j'ai constaté que les données EXIF ​​faisaient toujours partie de l'image et que la vignette était de 3 Ko après avoir supprimé les métadonnées.

Et au-delà de cela - est-il possible d'optimiser davantage les JPG sans perte? L'optimiseur PNG essaie différentes stratégies de compression, l'initialisation aléatoire de l'encodage Huffmann, etc.

Je suis conscient que la plupart des économies proviennent du paramètre de qualité JPEG et que c'est une mesure plutôt subjective. Je ne cherche qu'un outil qui peut être exécuté comme une étape de construction et qui serre sans perte quelques octets des images.

111
chris166

J'utilise libjpeg pour des opérations sans perte. Il contient un outil en ligne de commande jpegtran qui peut faire tout ce que vous voulez. Avec l'option de ligne de commande -copy none toutes les métadonnées sont supprimées et -optimize effectue une optimisation sans perte de la compression Huffmann. Vous pouvez également convertir les images en mode progressif avec -progressive, mais cela pourrait entraîner des problèmes de compatibilité (quelqu'un en sait-il plus à ce sujet?)

67
OutOfMemory

J'ai écrit un GUI pour tous les outils d'optimisation d'image que j'ai pu trouver , y compris MozJPEG et jpegoptim qui optimisent les tables Huffman, les analyses progressives et (facultativement) suppriment invisible métadonnées.

ImageOptim smushing it

Si vous n'avez pas de Mac, j'ai aussi une base interface web qui fonctionne sur n'importe quelle plateforme.

72
Kornel

[WINDOWS UNIQUEMENT]

RIOT (Radical Image Optimization Tool) C'est le meilleur outil d'optimisation d'image que j'ai trouvé!

http://luci.criosweb.ro/riot/

Vous pouvez facilement obtenir une image de 10 Mo jusqu'à 800 Ko grâce au sous-échantillonnage. Il prend en charge PNG, GIF et JPEG. Il s'intègre même dans les menus contextuels afin que vous puissiez envoyer des photos directement sur place. Vous permet de faire pivoter, de redimensionner, de compresser en Ko spécifiés, et plus encore. A également des plugins pour GIMP et IrfanView et d'autres choses.

Il y a aussi un DLL disponible si vous voulez l'incorporer dans vos propres programmes ou Java script/programme c ++).

Une autre alternative est http://pnggauntlet.com/ PNGGAUNTLET prend une éternité mais il fait un très bon travail.

[WINDOWS UNIQUEMENT]

12
Ben

Un nouveau service appelé JPEGmini produit des résultats incroyables. Dommage que ce soit uniquement en ligne.  Modifier : il est maintenant disponible pour Windows et Mac

11
Eduardo Molteni

J'ai essayé un certain nombre des suggestions ci-dessus - Personnellement, j'étais après la compression sans perte.

Mon échantillon d'image avait une taille d'origine de 67 737 octets.

Avec kraken.io, il est descendu à 64 718 Avec jpegtran, il est descendu à 64 718 Avec yahoo smush-it, il est descendu à 61 746 Avec imagemagick (-strip), il est descendu à 65 312

L'option smush.py semble prometteuse, mais l'installation était trop complexe pour que je puisse faire rapidement

jpegrescan semble également prometteur, mais semble être unix et j'utilise Windows

jpegmini n'est PAS sans perte, mais je ne peux pas faire la différence (jusqu'à 22 172)

l'application jtrasegstripper de plinth ne fonctionne pas sur mes fenêtres 7

jpegoptim n'est pas Windows - pas bon pour moi

Riot (en gardant la qualité à 100%) l'a fait descendre à 63 416 et avec un sous-échantillonnage de chrominance réglé à haut, il est descendu à 61 912 - Je ne sais pas si c'est sans perte ou non, et je pense qu'il semble plus léger que l'original .

Donc mon verdict est yahoo smushit s'il doit être sans perte

10
Graham Butcher

J'essaierais Imagemagick. Il a des tonnes d'options de ligne de commande, c'est gratuit et possède une licence Nice. http://www.imagemagick.org

Il semble y avoir une option appelée Strip qui peut vous aider: http://www.imagemagick.org/script/command-line-options.php#strip

9
borjab

ImageOptim est vraiment lisse. L'option de ligne de commande publiée par l'auteur remplira l'interface graphique et affichera la progression. J'ai utilisé jpegtran pour optimiser et convertir en progressif, puis ImageOptim pour d'autres optimisations progressives et pour d'autres types de fichiers.

Réutilisation du code de script également trouvé dans ce forum (tous les fichiers remplacés sur place):

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
bsy-web

Vous pouvez utiliser jpegoptim qui optimisera sans perte les fichiers jpeg par défaut. Le --strip-all l'option supprime toutes les informations supplémentaires intégrées. Vous pouvez également spécifier un mode avec perte avec le --max commutateur qui est utile lorsque vous avez des images enregistrées avec un réglage de très haute qualité, ce qui n'est pas nécessaire par exemple. contenu Web.

Vous obtenez une optimisation similaire à celle de jpegtran (voir la réponse de OutOfMemory) mais jpegoptim ne peut pas enregistrer sur des jpeg progressifs.

4
bluegray

J'ai écrit un outil en ligne de commande appelé `` picopt '' (similaire à ImageOptim) qui utilise des programmes externes pour optimiser les fichiers JPEG, PNG, GIFS, GIFS animés et même le contenu des archives de bandes dessinées (CBR/CBZ).

Cela convient pour une utilisation avec homebrew sur les systèmes OS X ou Linux où vous avez installé des outils comme jpegrescan, jpegtran, optipng, gifsicle, etc.

https://github.com/ajslater/picopt

4
AJ Slater

Au cas où quelqu'un chercherait, j'ai écrit une version hors ligne de Yahoo Smush.it. Il optimisera sans perte les pngs, jpgs et gifs (animés et statiques):

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

4
timmy

Je recommanderais aussi ImageMagick . Il a une option de ligne de commande pour supprimer les métadonnées EXIF

mogrify -strip image.jpg

Il existe de nombreux autres outils qui font la même chose.

En ce qui concerne la recompression des fichiers JPEG, ne le faites pas. Les fichiers JPEG sont avec perte pour commencer, donc toute forme de recompression ne fera que nuire à la qualité de l'image. Cependant, si vous avez des images encodées sans perte, certains encodeurs font un meilleur travail que d'autres. J'ai remarqué que les JPEG réalisés avec Photoshop sont toujours plus beaux que lorsqu'ils sont encodés avec ImageMagick (malgré la même taille de fichier) pour raisons compliquées . De plus (et cela vous concerne), je sais qu'au moins Photoshop peut enregistrer des JPEG au format optimisé , ce qui signifie qu'ils suppriment la compatibilité avec certaines choses que vous avez probablement ne se soucient pas d'enregistrer quelques Ko. Assurez-vous également qu'aucun profil de couleur n'est intégré et que vous pourrez peut-être enregistrer un autre couple de Ko.

3
David Johnstone

Je recommanderais d'utiliser http://kraken.io C'est une webapp ultra-rapide qui optimisera vos fichiers PNG et JPEG bien mieux que smush.it.

2
Pono

Je recommande d'utiliser JpegOptim, c'est gratuit et vraiment sympa, vous pouvez spécifier la qualité, la taille que vous souhaitez ... Et facile à utiliser en ligne de commande.

JpegOptim

2
agonist_

Puis-je recommander ceci pour une quasi-transparence:

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

Il utilise imagemagick 's convert et jpeg-recompress de archive jpeg .

Les deux sont open-source et fonctionnent sur Windows, Mac et Linux. Vous pouvez modifier les options ci-dessus pour différentes attentes de qualité.

1
Camilo Martin