Recommandation pour la compression de fichiers JPG avec ImageMagick
Je veux compresser un fichier image JPG avec ImageMagick, mais ne peut pas obtenir beaucoup de différence dans la taille. Par défaut, la taille de sortie est plus grande que celle de l'entrée. Je ne sais pas pourquoi, mais après l'ajout de certains +options de profil et la qualité, je peux avoir une taille plus petite, mais toujours semblable à l'original.
L'image d'entrée est 255kb, l'image traitée est 264kb (à l'aide de +profil à supprimer des profils et réglage de la qualité à 70%). Est-il possible de compresser l'image à 150 ko au moins? Est-ce possible? Ce ImageMagick options puis-je utiliser?
- Le recompresser ensuite un JPEG toujours entraînera une dégradation de l'image, même si elle est plus grande. Il serait mieux si vous pouvez commencer avec l'original avant il a été enregistré la première fois.
- Je sais, mais malheureusement je n'ai pas l'image d'origine, tout ce que j'ai est un gros fichier jpg, mais je pense que je peux obtenir un bon équilibre entre la qualité et la taille
Vous devez vous connecter pour publier un commentaire.
J'utilise toujours:
dans imagemagick devrait être
espère que ce sera utile.
Lien Source: http://www.yuiblog.com/blog/2008/12/05/imageopt-4/
De @Fordi dans les commentaires (n'oubliez pas les pouces jusqu'à son commentaire si vous le souhaitez):
Si vous n'aimez pas le flou, l'utilisation
-sampling-factor 4:2:0
à la place. Ce qu'il fait est de réduire la saturation du canal de résolution à la moitié, sans jouer avec la luminance de la résolution que vos yeux se fixent sur. Si vous souhaitez mieux la fidélité dans la conversion, vous pouvez obtenir une légère amélioration, sans une augmentation de la taille du fichier en spécifiant-define jpeg:dct-method=float
- qui est, l'utilisation la plus précise à virgule flottante transformée en cosinus discrète, plutôt que la valeur par défaut entier rapide version.mogrify -strip -interlace Plane -gaussian-blur 0.05 -quality 85% *.jpg
. Assurez-vous d'avoir une sauvegarde avant d'exécuter cette commande. Il va écrire dans la place.-strip
a fait pour moi. Mercimogrify -strip -quality 75% *.jpg
. La bande est grande. 0 perte de qualité, et de grandes économies d'espace. Et de la qualité (75%) se distingue à peine de 100%, mais prend la moitié de l'espace.-quality 40
et réduire considérablement la taille de l'image sans aucune grandement notable des artefacts. (bien sûr en fonction du type de photo)-interlace Plane
option est complètement inutile, si c'est pas mal. Pour le rendu de l'image à partir du disque dur, l'image entrelacée prend 2 à 3 fois plus longtemps que les non-entrelacé. Et il n'y a pas de différence de taille.Je suis en utilisant le Google Pagespeed Insights optimisation de l'image des lignes directrices, et pour ImageMagick ils recommandons ce qui suit:
-échantillonnage-facteur 4:2:0
-bande
-la qualité de 85 [il peut varier, j'utilise la gamme de 60 à 80]
-entrelacement
-espace colorimétrique RVB
Commande en ImageMagick:
Avec ces options je obtenir jusqu'à 40% d'économies en JPEG taille sans beaucoup de perte visible.
Viens de le dire pour ceux qui à l'aide de Imagick classe en PHP:
Une fois que j'ai besoin de redimensionner les photos de l'appareil photo pour le développement:
Commande:
et je ne peux pas voir les changements en plein écran avec ma résolution d'écran de 1920x1080. Résolution de 2048 est le meilleur pour le développement de 10 cm de photos en qualité maximale de 360 dpi. Je ne veux pas bande.
edit: j'ai remarqué que j'ai même obtenir de bien meilleurs résultats sans effet de flou. Sans flou de la taille du fichier est de 50% de l'original, mais la qualité est meilleure (lorsque le zoom).
Je voudrais ajouter un côté utile de la note et une suggestion générale afin de minimiser les formats JPG et PNG.
Tout d'abord, ImageMagick lit (ou mieux "deviner"...) l'entrée de niveau de compression jpeg et donc, si vous n'ajoutez pas de
-quality NN
à tous, la sortie doit utiliser le même niveau que l'entrée. Parfois, pourrait être un élément important. Sinon, le niveau par défaut est-quality 92
(voir http://www.imagemagick.org)La suggestion est d'environ un vraiment génial outil gratuit ImageOptim, également pour les processus de traitement par lots.
Vous pouvez obtenir plus petit jpg (et png ainsi, surtout après l'utilisation de la libre ImageAlpha [pas de processus de traitement par lots] ou la libre Pngyu si vous avez besoin de processus de traitement par lots).
Non seulement, ces outils sont pour Mac et Win et que la Ligne de Commande (je suggère d'installation à l'aide Brew et de la recherche en Infusion formules).
J'ai ajouté
-adaptive-resize 60%
à la commande, mais avec-quality 60%
.Il s'agissait de mes résultats
Je ne suis pas sûr que la conversion détruit mon image trop, mais honnêtement, je ne pensais pas que ma conversion regardé comme de la merde. C'était un grand angle panorama et je n'ai pas de soins d'un travail minutieux de l'obstruction.
Voir les liens suivants où il y a une option dans ImageMagick pour spécifier le fichier de sortie souhaité taille pour l'écriture de fichiers JPG.
http://www.imagemagick.org/Usage/formats/#jpg_write
http://www.imagemagick.org/script/command-line-options.php#define
-define jpeg:extent={size}
As of IM v6.5.8-2 you can specify a maximum output filesize for the JPEG image. The size is specified with a suffix. For example "400kb".
Vous allez perdre certains de la qualité par décompresser et recompresser ensuite en plus de toute perte due à l'abaissement de la qualité, de la valeur de l'entrée.
N'a expérimenter moi-même ici, et le garçon n'a que Gausian flou de faire une belle différents. La dernière commande que j'ai utilisé était:
mogrify * -échantillonnage-facteur 4:2:0 -bande -qualité 88 -entrelacement Plan -définir jpeg:dct-method=float -espace colorimétrique RVB -gaussien-flou de 0,05
Sans Gausian flou à 0,05 c'est autour de 261kb, avec elle, c'était autour de 171KB pour l'image j'ai été le tester sur. La différence visuelle sur un 1440p moniteur avec un grand complexe de l'image n'est pas visible jusqu'à ce que vous effectuez un zoom de façon de façon.
Voici une solution complète pour ceux qui utilisent Imagick en PHP: