Python - PIL, Poids image

Fermé
SteFLyon Messages postés 5 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 22 mars 2007 - 21 mars 2007 à 11:00
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 22 mars 2007 à 11:22
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
A voir également:

10 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
21 mars 2007 à 11:21
ç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.
0
SteFLyon Messages postés 5 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 22 mars 2007
21 mars 2007 à 11:29
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
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
21 mars 2007 à 12:03
Je ne peux pas me prononcer sans voir l'image.
0
SteFLyon Messages postés 5 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 22 mars 2007
21 mars 2007 à 12:18
Je peux t'envoyer des exemples par mail si ça ne t'em..... pas trop lol
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
21 mars 2007 à 13:49
Ok:
sebsauvage à sebsauvage point net
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
21 mars 2007 à 13:53
Salut,

ce n'est pas plutôt?

sebsauvage arobase sebsauvage point net

:-)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
21 mars 2007 à 14:56
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.
0
SteFLyon Messages postés 5 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 09:37
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
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
22 mars 2007 à 10:33
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.
0
SteFLyon Messages postés 5 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 10:56
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 :-)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
22 mars 2007 à 11:22
Je tourne en rond, parce que je ne trouve pas la bonne solution !!!

Pas de miracle: Des fichiers Word contenant 20 à 60 images, ça prend de la place !

Aucune autre solution que réduire la qualité d'image (soit en compressant en JPEG plus fort, soit en réduisant la résolution des images).
0