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.
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?)
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.
Si vous n'avez pas de Mac, j'ai aussi une base interface web qui fonctionne sur n'importe quelle plateforme.
[WINDOWS UNIQUEMENT]
RIOT (Radical Image Optimization Tool) C'est le meilleur outil d'optimisation d'image que j'ai trouvé!
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]
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
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
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
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):
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
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
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.
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.
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):
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.
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.
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.
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é.