Comment puis-je compresser des images?


25

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?



@MostafaAhangarha: Pas un doublon. Veuillez lire ma réponse askubuntu.com/a/781588/9598 et revoir votre vote afin de ne pas fermer cette question. C'est une bonne chose. Merci!
Geppettvs D'Constanzo

Réponses:


21

J'utilise Trimage super simple à utiliser.

seulement ajouter une image et compresser pour installer:

sudo apt-get install trimage

entrez la description de l'image ici


2
Je ne vois aucun paramètre permettant de définir le niveau de compression souhaité, la taille du fichier, etc.
Rico

46

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

Le décor

Avouons-le, les concepteurs Web, les développeurs Web et / ou les maîtres Web doivent «compresser» nos fichiers image afin de les rendre suffisamment «légers» pour ê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 au fait que, probablement, elles n'ont pas fait face à un tel paysage. Voilà pourquoi je commence à expliquer cela.

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

  1. L'image DOIT être légère
  2. L'image DOIT être "compressée" afin de perdre la taille du fichier mais pas "rezised" comme indiqué par un autre utilisateur qui a indiqué un doublon sur cette question .
  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 px, peuvent avoir une taille de fichier importante. Je donne un exemple sur cette capture d'écran:

entrez la description de l'image ici

entrez la description de l'image ici

Dans la fenêtre des propriétés du fichier, nous pouvons voir qu'il s'agit d'un fichier de 9,5 Mo, ce qui retardera beaucoup le téléchargement et retardera beaucoup afin de s'afficher à 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 dans un site Web, sans attendre des années pour télécharger et attendre quelques autres années pour l'afficher sur mon site Web?

Le fichier doit être compressé.

Et lorsque nous parlons de "compression", nous devons explicitement changer sa qualité afin de la rendre utilisable pour le cas auquel nous sommes confrontés.

Alors, laissons tomber le suivant dans un terminal:

convert seminario-tabloide.png test.jpg

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

entrez la description de l'image ici

Pourtant gros?

Mais, 2,4 Mo est encore une grande taille de fichier. Jouons maintenant avec quelques autres commandes de conversion ImageMagick afin de créer des tailles de fichier plus petites:

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, pas même 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. Ce qui entraînera un fichier compressé qui ne sera pas affecté visuellement lors du rendu à l'écran, mais vous verrez les artefacts lors de l'impression dans un grand format de papier (plus grand que la lettre).

Redimensionnement + compression = super cool!

À présent. Nous pouvons faire autre chose. Quelques choses en effet: nous pouvons d'abord redimensionner les images et appliquer une compression après cela, ce qui se traduira par une taille de fichier plus petite que l'original, et fournira une image utile pour le rendu à l'écran, pas si bonne pour l'impression, mais il semble que nous besoin de l'afficher à l'écran et non dans une bannière imprimée, non?

Faisons donc ceci:

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

Avec cette instruction, nous demandons que l'image à redimensionner soit 1024 pixels de large par n'importe quelle quantité de pixels nécessaires afin de ne pas perdre de rapport d'aspect.

Maintenant ... devinez quoi?

La taille du fichier est passée de 9,5 Mo à ... (musique suspense 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 de surcharge insérées dans le fichier et cela entraînera une taille de fichier plus grande. Je ne vous proposerai donc pas d'essayer mais si vous vous attendez à ce 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 réussi, mais ne vous attendez pas à ce que des exercices entraînent une taille de fichier plus petite. Mais vous pouvez vous amuser beaucoup en exécutant ce genre d'exercices.

Traitement par lots

Oh! Mais j'oublie presque 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. Disons donc au terminal dont nous avons besoin pour exécuter la même instruction dans tous les fichiers d'un répertoire, après quoi j'expliquerai d'autres instructions.

Convertissez tout en 1024px (vous pouvez utiliser n'importe quelle quantité de pixels)

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

Ici, 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 déposer une copie avec un nom différent afin de faciliter la sélection.

Réduisez la qualité en pourcentage (utilisez le pourcentage de votre choix) 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 les images redimensionnées soient réduites en qualité afin de réduire la taille de leur fichier.

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

Nautilus Script

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

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

Pour obtenir des instructions sur la façon de procéder, veuillez lire à la fois la question, la réponse et les commentaires ici: Comment traiter par lot des images JPG pour changer sa qualité avec Nautilus-Actions?

Bonne chance!


1
Telle est la réponse «apprends-moi à pêcher». Les convertcompétences en ligne de commande ImageMagick sont excellentes.
Charney Kaye

Solide! J'ai utilisé l' éditeur de texte Sublime Text en mode multi-curseur pour changer rapidement un tas de commandes à la fois pour une compression "batch" d'un tas de photos. Je viens d'utiliser le convert photo.jpg -quality 70% photo_compressed.jpgformat de commande et cela a très bien fonctionné! Même le réglage de la compression à seulement 70% de la qualité d'origine a réduit la taille de la photo à ~ 37% de l'original, car l'effet est agrandi en étant sur les axes x et y.
Gabriel Staples,

Fantastique explication de concepts si souvent mal compris. Pour être complet, permettez-moi d'ajouter que pour le traitement par lots, vous pouvez également utiliser mogrify d'ImageMagick plutôt que de convertir dans lequel je crée un dossier pour stocker les résultats, puis simplement traiter dans ce dossier qui permet également d'organiser les choses. Par exemplemogrify -resize 1600 -path dir_name -format JPG -quality 90 *.tif
Dennis

0

Si vous faites référence à des images JPEG, la compression de facto n'est pas possible. Parce que jpeg est par définition un format de fichier compressé (tout le bruit et les pixels 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 fichiers JPEG est zipx. Mais zipx est propriétaire 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 chacune) et éventuellement les convertir au format de fichier png. PNG (= graphiques réseau portables) 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 Google pour les images, algorithme de chargement le plus rapide).

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

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


3
Vous voudrez peut-être mentionner les différentes options de compression / qualité jpeg; il est tout à fait possible de réduire la taille du fichier d'une image jpeg en augmentant sa compression (et donc en réduisant sa qualité).
Nick Weinberg

1
Ma compréhension de la compression signifie éliminer les pixels inutiles tout en conservant la même qualité. Réduire la qualité n'est pas une compression, c'est simplement une réduction ou un sous-échantillonnage. La compression sans perte est possible en utilisant le format zipx qui fonctionne très bien avec des photos en rafale. Il crée une sorte de pile de photos similaires surimposées / sur-empilées dans laquelle tous les pixels doubles sont aplatis sur un calque séparé, quelque chose de similaire à un fichier .css dans une page Web. Les pixels répétitifs sont définis comme une entité distincte dans l'archive.
ipse lute
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.