web-dev-qa-db-fra.com

Comment puis-je compresser des images?

J'ai 5 000 images que je dois compresser (pour afficher sur mon site web).

Je suis nouveau sur Ubuntu. Alors qu'est-ce que je fais?

20
user2950593

J'utilise Trimage super simple à utiliser.

seulement ajouter une image et compresser pour installer:

Sudo apt-get install trimage

enter image description here

19
Mohamed Slama

Le mot "compression" semble être mal interprété dans cette question, mais il est encore valide selon le contexte dans lequel vous souhaitez le voir.

Le paysage

Voyons les concepteurs Web, les développeurs Web et/ou les concepteurs Web doivent "compresser" nos fichiers image afin de les rendre suffisamment "légers" pour pouvoir être rapidement téléchargés sur notre hébergement si nous travaillons directement sur un environnement de production réel. Ce qui n'affectera pas si nous travaillions dans un environnement de production de tests local.

Beaucoup de réponses semblent se référer à d'autres choses, principalement dues à - probablement - elles n'ont pas été confrontées à de tels paysages. C'est pourquoi je commence à expliquer cela.

Alors. Comprenons ce que la réponse doit résoudre:

  1. La photo doit être légère
  2. L'image DOIT être "compressée" afin de perdre la taille du fichier, mais pas "rezisée" comme le dit un autre utilisateur qui a pointé du doigt un doublon sur cette question Compression par lots JPG & renommer (find -exec, xargs, piping?)
  3. Les images doivent être compressées par lots, de préférence via une interface graphique.

Image légère

Voyons d'abord ce que devrait être une "image légère".

Les images haute définition, avec des résolutions supérieures à 1024 pixels, peuvent avoir une grande taille de fichier. Je fournis un exemple sur cette capture d'écran:

enter image description here

enter image description here

Dans la fenêtre des propriétés du fichier, nous voyons qu’il s’agit d’un fichier de 9,5 Mo, ce qui retardera beaucoup le téléchargement et le rendu à l’écran lorsqu’il sera publié sur un site Web.

Néanmoins, la taille de l'image et la résolution de la grille sont vraiment utiles pour une impression haute définition. C'est donc un paysage différent que je ne couvrirai pas dans cette explication.

Alors, comment puis-je utiliser cette image sur un site Web, sans attendre des années pour pouvoir télécharger et attendre d'autres années pour la montrer sur mon site?

Le fichier doit être compressé.

Et lorsque nous parlons de "compression", nous devons explicitement changer sa qualité afin de la rendre utilisable dans le cas qui nous occupe.

Laissons donc le suivant dans un terminal:

convert seminario-tabloide.png test.jpg

Cela va convertir le format haute définition PNG en un format JPG "compressé", qui est en soi un fichier plus petit! Il passe de 9,5 Mo à 2,4 Mo.

enter image description here

Pourtant grand?

Mais, 2,4 Mo est encore une grande taille de fichier. Jouons maintenant avec d'autres commandes ImageMagickconvertir afin de créer des fichiers de taille plus petite:

convert test.jpg -quality 50% test-50p.jpg

C’est ce que nous devons faire pour "compresser" une image. Cela va réduire la qualité de l'image de 50% et fournir une taille de fichier de 938,4 Ko <=== (Remarque: KILOBYTES, même pas un mégaoctet).

Nous pouvons aller plus loin et créer une taille de fichier plus petite en ajustant le pourcentage dans la même commande via:

convert test.jpg -quality 30% test-30p.jpg

N'oubliez pas que dans cet exemple, nous réduisons la qualité du fichier, pas les dimensions de l'image. Cela produira un fichier compressé qui ne sera pas affecté visuellement lors du rendu à l'écran, mais vous verrez les artefacts lors de l'impression sur un format de papier plus grand (plus grand qu'une lettre).

Redimensionnement + Compression = Super Cool!

À présent. Nous pouvons faire une chose différente. Quelques choses en effet: nous pouvons d’abord redimensionner les images, puis appliquer une compression, ce qui donnera un fichier plus volumineux que l’original et fournira une image utile pour le rendu à l’écran, pas aussi bon pour l’impression mais il semble besoin de l'afficher à l'écran et non dans une bannière imprimée, non?

Alors faisons ceci:

convert seminario-tabloide.png -resize 1024x test-1024x.jpg

Avec cette instruction, nous demandons que l’image à redimensionner soit large de 1024 pixels et n’importe quelle quantité de pixels nécessaire pour ne pas perdre le format de l’image.

Maintenant ... devinez quoi?

La taille du fichier a été réduite de 9,5 Mo à ... (musique en suspens avec congas, s'il vous plaît) 433.7 KILOBYTES

Si nous souhaitons compresser au maximum un fichier compressé maximum comme celui-ci, nous ferons face à des données supplémentaires insérées dans le fichier, ce qui entraînera une taille de fichier plus grande. Donc, je ne vous suggérerai pas d'essayer, mais si vous attendez de moi que je fasse l'exemple, ok ... c'est parti!

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg

Et nous sommes passés de 433,7 Ko à 176,2 Ko en une seule commande. Cet exemple a été un succès. Néanmoins, ne vous attendez pas à ce que des exercices réduisent les fichiers. Mais vous pouvez avoir beaucoup de plaisir en exécutant ce genre d'exercices.

Traitement par lots

Oh! Mais j’ai presque oublié l’un des besoins: appliquer ce processus à beaucoup de photos avec facilité.

Pour une telle chose, nous pouvons le faire avec deux processus.

Le terminal

C'est plus rapide et plus facile. Voyons donc au terminal que nous devons exécuter la même instruction dans tous les fichiers d’un répertoire, après quoi j’expliquerai une autre instruction.

Tout convertir en 1024px (vous pouvez utiliser n'importe quel nombre de pixels)

for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;

Nous demandons à la commande d'exécuter la même instruction pour tous les fichiers d'un répertoire, d'appliquer la transformation et de supprimer une copie portant un nom différent afin de faciliter la sélection.

Réduisez la qualité en pourcentage (utilisez le pourcentage que vous souhaitez) pour toutes les images d'un répertoire:

for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;

Nous demandons ici que la qualité des images redimensionnées soit réduite afin de réduire la taille du fichier.

Vous pouvez jouer avec ces commandes et voir vos résultats. Après quelques heures de divertissement, vous serez un expert.

Script Nautilus

Le 20 avril 2015, j'ai dû faire face à une situation telle que la question initiale. J'ai donc dû faire des recherches et demander de l'aide pour une question. C'est pourquoi maintenant je sais beaucoup de cela. Ne pense pas que je suis né avec cette connaissance, mec.

Si vous n’êtes pas habitué aux terminaux et/ou souhaitez utiliser une interface graphique afin de choisir simplement vos groupes de fichiers et d’appliquer les transformations, vous pouvez créer votre propre script Nautilus Actions afin de simplement cliquer avec le bouton droit de la souris sur le groupe de fichiers et choisir une option du menu contextuel.

Pour savoir comment procéder, veuillez lire la question, la réponse et les commentaires ici: Comment traiter en lots des images JPG afin de changer sa qualité avec Nautilus-Actions?

Bonne chance!

42

Si vous vous référez à des images JPEG, la compression de facto n'est pas possible. Parce que jpeg est par définition un format de fichier compressé (tous les pixels parasites et inutiles sont déjà supprimés). Vous pouvez les compresser correctement, mais la taille totale restera à peu près la même. Le seul algorithme de compression avancé que je connaisse pour les jpeg est zipx. Mais zipx est la propriété de Winzip et garantit un max. taille réduite de 30% (en mode archive zipx).

Pour afficher vos images sur le Web, vous devez d’abord les redimensionner (moins de 1 Mo pour chaque image) et éventuellement les convertir au format de fichier png. Le format PNG (= graphique réseau portable) est spécialement optimisé pour un transfert Web plus rapide et un affichage plus rapide. Les utilisateurs avancés peuvent même convertir ces images au format webp (format de Google pour les images, algorithme de chargement le plus rapide).

Vous pouvez convertir par lots des images avec XnConvert, puis redimensionner vos images avec XnView. Téléchargez le paquet deb à partir d'ici: http://www.xnview.com/de/xnviewmp/#downloads , puis cliquez dessus avec le bouton droit de la souris et ouvrez-le avec Gnome Software.

Si vous ne vous souciez pas de la vitesse de chargement du réseau, mais de la qualité, gardez vos images intactes et créez-leur une bibliothèque numérique. Peut-être les télécharger sur un serveur public (Yahoo, Google, etc.).

0
ipse lute