[RESOLU] Convertir une image jpg, bmp, gif en png dans un upload

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mars 2012, 11:07

Le dernier code permet l'upload de différent format tu peut restreindre le poids et la taille du fichier et en refuser l'emplois si plus lourd au prévu. 20 à 100ko sont suffisant pour un avatar.
La limitation de la taille est, a mon sens, obligatoire pour ne pas bousiller ta charte graphique ;)

@+

J'allais oublier : png remplaçant de gif, mais quid de l'annimation ? (que seul gif propose) même si j'en suis ma forcément fan ça reste très utilisé ^^
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

01 mars 2012, 11:41

Eau puisée dans mon écluse pour alimenter le moulin de moogli:
Je me fiais aux affirmations du site GNU sur les performances de PNG, et, effectivement, sur les images que je traitais (des copies d'écrans pour l'essentiel) le gain était assez spectaculaire. L'avantage en est, pour des images destinées à illustrer entre autres, de gérer la transparence. Pour les animations, comme je n'ai jamais aimé, et que je n'en ai pas besoin, la question ne se posait pas.

Mais, hier, j'ai fait, avec GIMP, des tests que j'ai déja rapportés et qui concluent, comme le site PNG lui-même, à douter de l'efficacité de ce format. Au mieux l'image d e1,9 Mo avec compression maximale est passée à 1, Mo en PNG.
D'autant plus que, après vérification, le format GIF est maintenant libre.
Il me semble que jpg a un meilleur rendu...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
AB
ViPHP | 5818 Messages

03 mars 2012, 22:36

Bon alors petite mise au point : il faut plutôt voir ces différents formats image selon leur capacité à traiter les images plutôt que suivant des licences d'utilisation qui n'ont jamais posé de problème pour leur utilisation.

Le format PNG à été conçu pour supporter plusieurs type d'images.

- Le format PNG 8 (8bits) peut avantageusement remplacer le format GIF - gestion de la transparence, optimisation de la compression moyenne.
- Le format PNG 24 ou PNG 32... (24 ou 32 bits ou plus) est un format de travail qui peut parfois être utilisé sur le web mais pas pour des photos car l'image n'est pas compressée et dans ce cas les photos sont très lourdes.

Le format PNG 8 possède les même inconvénients que le GIF c'est à dire qu'il ne gère pas les dégradés (8 bits permettant trop peu de nuances).

Donc le format PNG n'est pas adapté au traitement des photos destinées au web (qui nécessitent une bonne qualité des dégradés avec compression) et il n'a jamais été prévu pour cela.

En résumé, autant on peut envisager de transformer une image gif au format png (y'a pas ou peu d'intérêt mais bon...), autant il est incongru de vouloir transformer une photo jpg au format png. Car se sera, soit du PNG 8 et dans ce cas l'image perdra ses dégradés, soit du PNG 24 et dans ce cas la photo sera beaucoup plus lourde inutilement.

Si facebook (ou les autres) ont une majorité d'images en jpg c'est parce que les auteurs des photos les envoient au format natif de leur appareil photo (jpg pour les formats compressés) et qu'il n'y a aucune raison de modifier ce format. Le seul traitement consiste donc en un redimensionnement si besoin.

Donc la solution standard est d'accepter pour l'upload les formats png, gif et jpg (couvrant les deux formats d'images et les photos) et de faire un redimensionnement si besoin pour être compatible avec la présentation du site. Au passage il est souvent intéressant de faire une optimisation pour le web pour les formats png et jpg - troisième paramètre des fonctions "imagejpeg" et "imagepng", non disponible pour le format gif - qui permettra d'imposer une compression minimum pour que les images ne soient pas trop lourdes.

;,;
Invité n'ayant pas de compte PHPfrance

13 juin 2014, 18:06

;:;:;:;