Python - PIL, Poids image
SteFLyon
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
j'utilise Python et PIL pour coller des images ensemble. En gros, j'ai un bandeau (que j'appelle intelligement bandeau.gif) et une liste de copies d'écrans de largeur fixe (la même que le bandeau).
Mon outil colle le bandeau sur chaque copie d'écran et me sauve à chaque fois le fichier résultant à la place du fichier initial.
Tout fonctionnait bien tant que mes images étaient des jpg.
Puis je me suis aperçu que lorsque je prenais mes copies d'écrans directement en gif, leur taille était plus faible pour une qualité meilleure.
J'ai donc modifié l'outil pour lui faire coller des images gif ensemble plutot que des jpg. Et la ... surprise, quand je colle une image de 50K à une autre de 7k, j'obtient un résultat qui fait plus de 200k .... ce qui est inacceptable pour l'utilisation que j'en fais.
Je n'avais pas ce problème quand j'utilisais des jpg et je ne comprend pas d'ou vient ce problème !!!!!!!!!
Merci d'avance pour toute piste.
SteF
j'utilise Python et PIL pour coller des images ensemble. En gros, j'ai un bandeau (que j'appelle intelligement bandeau.gif) et une liste de copies d'écrans de largeur fixe (la même que le bandeau).
Mon outil colle le bandeau sur chaque copie d'écran et me sauve à chaque fois le fichier résultant à la place du fichier initial.
Tout fonctionnait bien tant que mes images étaient des jpg.
Puis je me suis aperçu que lorsque je prenais mes copies d'écrans directement en gif, leur taille était plus faible pour une qualité meilleure.
J'ai donc modifié l'outil pour lui faire coller des images gif ensemble plutot que des jpg. Et la ... surprise, quand je colle une image de 50K à une autre de 7k, j'obtient un résultat qui fait plus de 200k .... ce qui est inacceptable pour l'utilisation que j'en fais.
Je n'avais pas ce problème quand j'utilisais des jpg et je ne comprend pas d'ou vient ce problème !!!!!!!!!
Merci d'avance pour toute piste.
SteF
A voir également:
- Python - PIL, Poids image
- Réduire le poids d'un pdf - Guide
- Image iso - Guide
- Citizen code python - Accueil - Outils
- Acronis true image - Télécharger - Sauvegarde
- Reduire taille image - Guide
10 réponses
ça dépend énormément de ton image.
Quelques exemple: Voir le chapitre "Laurel et Hardy : GIF et JPEG" dans cette page:
https://sebsauvage.net/html.html
comme tu peux le voir, le GIF (et le PNG) sont bien adaptés quand il y a des aplats de couleur.
Mais dès qu'il y a une photo ou un dégradé de couleurs, le JPG est plus efficace.
A toi de choisir le format le mieux adapté en fonction de la nature de l'image.
Quelques exemple: Voir le chapitre "Laurel et Hardy : GIF et JPEG" dans cette page:
https://sebsauvage.net/html.html
comme tu peux le voir, le GIF (et le PNG) sont bien adaptés quand il y a des aplats de couleur.
Mais dès qu'il y a une photo ou un dégradé de couleurs, le JPG est plus efficace.
A toi de choisir le format le mieux adapté en fonction de la nature de l'image.
Merci de ta rapide réponse.
En fait je n'ai pas de photo, donc le rendu avec le gif est très bon.
Mon problème n'est pas dans la qualité de l'image (qui me convient parfaitement) mais dans le poid excessif de l'image résultant du "collage" de deux images de petite taille.
Stef
En fait je n'ai pas de photo, donc le rendu avec le gif est très bon.
Mon problème n'est pas dans la qualité de l'image (qui me convient parfaitement) mais dans le poid excessif de l'image résultant du "collage" de deux images de petite taille.
Stef
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai reçu le fichier.
Explications:
Ton image d'origine est en 16 millions de couleurs.
Gif ne supporte que 256 couleurs.
Pour enregistrer en GIF, PIL effectue une conversion et un tramage de l'image.
Voici un zoom de ton image finale en GIF:
http://img65.imageshack.us/img65/7964/00cq2.png
Comme tu peux le voir, c'est très tramé.
Or le tramage se compresse très mal en GIF.
Pour cette image là, tu devrais choisir le format PNG.
Explications:
Ton image d'origine est en 16 millions de couleurs.
Gif ne supporte que 256 couleurs.
Pour enregistrer en GIF, PIL effectue une conversion et un tramage de l'image.
Voici un zoom de ton image finale en GIF:
http://img65.imageshack.us/img65/7964/00cq2.png
Comme tu peux le voir, c'est très tramé.
Or le tramage se compresse très mal en GIF.
Pour cette image là, tu devrais choisir le format PNG.
Merci de ta réponse.
J'ai compris le pourquoi du comment, mais je vais donc enchainer sur une nouvelle question.
Je prend mes copies d'écran en png, je leur colle mon bandeau en png et le résultat est toujours très gros par rapport au poid originale des images :-)
J'ai vu que je pouvais utiliser l'option optimize de "save", mais je ne dois pas faire les choses comme il faut !
Une piste ??
Merci
Stef
J'ai compris le pourquoi du comment, mais je vais donc enchainer sur une nouvelle question.
Je prend mes copies d'écran en png, je leur colle mon bandeau en png et le résultat est toujours très gros par rapport au poid originale des images :-)
J'ai vu que je pouvais utiliser l'option optimize de "save", mais je ne dois pas faire les choses comme il faut !
Une piste ??
Merci
Stef
Je n'ai jamais creusé du côté des options save des PNG.
Effectivement d'après ce que je peux lire, c'est l'option optimize=1 ou optimize=True qu'il faut utiliser, mais j'ignore si PIL possèdes des options pour choisir le taux de compression.
A défaut, tu peux utiliser des outils en ligne de commande comme pngcrush pour optimiser au maximum la taille de tes fichiers PNG.
Ce logiciel est vraiment très efficace.
Effectivement d'après ce que je peux lire, c'est l'option optimize=1 ou optimize=True qu'il faut utiliser, mais j'ignore si PIL possèdes des options pour choisir le taux de compression.
A défaut, tu peux utiliser des outils en ligne de commande comme pngcrush pour optimiser au maximum la taille de tes fichiers PNG.
Ce logiciel est vraiment très efficace.
Effectivement le module fonctionne, mais est relativement inutilisable dans mon cas.
En fait, j'ai crée en template word avec une macro qui me permet de choisir les modules que je veux ajouter à mes propositions commerciales (ou autres docs).
Chacun de ces module est un fichier word qui contient des capture d'écran (d'une application web). Entre 20 et 60 images par fichier donc.
Chaque image est en fait un lien vers l'image source.
Pour personnaliser mes documents je crée un bandeau, qui est celui du site web de mon prospect / client. Ma macro lance automatiquement mon programme python pour coller le bandeau en question à chaque copie d'écran.
La macro met ensuite le fichier wrod résultant à jour.
Tout fonctionne parfaitement .... sauf que si mes images résultantes prennent du poids, mon fichier devient si gros que je ne peux plus l'envoyer par mail (même compressé ;-(((((((
Le .jpg est gros et ressort mal à l'écran après détérioration de la qualité.
Le .gif est idéal (bonne qualité et faible poids), mais la modification multiplie son poids par 8.
Le .png me semblait bien mais la modification détériore notablement certaines images et le fichier résultant est beaucoup trop gros (pas de changement avec l'option optimize=1).
Je tourne en rond, parce que je ne trouve pas la bonne solution !!!
Est-ce PIL qui "fonctionne mal" sur certains formats de fichiers ?
Fais-je les choses à l'envers ??
MERCI !!!!!!!!!!!!!!!!!!!!!!!
STEF :-)
En fait, j'ai crée en template word avec une macro qui me permet de choisir les modules que je veux ajouter à mes propositions commerciales (ou autres docs).
Chacun de ces module est un fichier word qui contient des capture d'écran (d'une application web). Entre 20 et 60 images par fichier donc.
Chaque image est en fait un lien vers l'image source.
Pour personnaliser mes documents je crée un bandeau, qui est celui du site web de mon prospect / client. Ma macro lance automatiquement mon programme python pour coller le bandeau en question à chaque copie d'écran.
La macro met ensuite le fichier wrod résultant à jour.
Tout fonctionne parfaitement .... sauf que si mes images résultantes prennent du poids, mon fichier devient si gros que je ne peux plus l'envoyer par mail (même compressé ;-(((((((
Le .jpg est gros et ressort mal à l'écran après détérioration de la qualité.
Le .gif est idéal (bonne qualité et faible poids), mais la modification multiplie son poids par 8.
Le .png me semblait bien mais la modification détériore notablement certaines images et le fichier résultant est beaucoup trop gros (pas de changement avec l'option optimize=1).
Je tourne en rond, parce que je ne trouve pas la bonne solution !!!
Est-ce PIL qui "fonctionne mal" sur certains formats de fichiers ?
Fais-je les choses à l'envers ??
MERCI !!!!!!!!!!!!!!!!!!!!!!!
STEF :-)