[GD2] perte de qualité avec imagejpeg

Mistic
Invité n'ayant pas de compte PHPfrance

11 juin 2009, 21:30

Bonsoir

j'utilise php et gd2 pour créer une image avec les dernières images d'une galerie, mais je me heurte à un problème de qualité, comme vous pouvez le voir sur les images ci-dessous la bordure rose du fond de mon image est très abimée après passage à la moulinette

j'ai simplifié au max le code et découvert que c'est la fonction imagejpeg qui recompresse mal l'image, si je fait une sortie en png la qualité est optimale, seulement c'est trop lourd

connaissez-vous la solution à ce problème ?

Code : Tout sélectionner

<?php header ("Content-type: image/jpeg"); $image = imagecreatefromjpeg('banner-random.jpg'); imagejpeg($image, '', 100); ?>
image originale
Image

sortie
Image

Mistic
Invité n'ayant pas de compte PHPfrance

12 juin 2009, 12:20

suis-je donc le seul chez qui cette fonction bugue ?

ViPHP
AB
ViPHP | 5818 Messages

12 juin 2009, 14:13

Bon là tu chipottes... :)

Je ne crois pas que la fonction bug mais elle fait ce qu'elle peut.
Il y aura peut-être des paramètres supplémentaires dans des futures versions de php, mais pour l'instant cette fonction ne peux pas concurrencer en qualité le redimensionnement ou la création d'image d'un logiciel photo. Etant destinée à être utilisée sur un serveur, il faut bien modérer les besoins en ressources...

Ce que cette fonction ne possède pas par exemple par rapport à un logiciel photo, c'est l'accentuation des contours. C'est bien dommage mais peut-être pour plus tard...

ViPHP
ViPHP | 2287 Messages

12 juin 2009, 15:44

j'ai simplifié au max le code et découvert que c'est la fonction imagejpeg qui recompresse mal l'image, si je fait une sortie en png la qualité est optimale, seulement c'est trop lourd

connaissez-vous la solution à ce problème ?
C'est simple, il faut juste que tu choisisses. Rendu nickel et poids un peu plus élevé ou rendu moyen et poids léger :-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Mistic
Invité n'ayant pas de compte PHPfrance

12 juin 2009, 16:45

c'est quand même bizarre que la fonction massacre autant l'image, et en plus sur une seule couleur

j'ai croisé plusieurs sites qui utilisent sans doute gd avec un rendu bien meilleur

ViPHP
ViPHP | 1136 Messages

12 juin 2009, 16:50

C'est parce que les développeurs de php n'aiment pas le rose c'est pas un bug .. :langue:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 juin 2009, 16:54

Bonjour,

Tu as essayé en gif?
Quand tout le reste a échoué, lisez le mode d'emploi...

Mistic
Invité n'ayant pas de compte PHPfrance

12 juin 2009, 17:01

je n'ai pas trop envie d'un format limité à 256 couleurs, surtout pour afficher des miniatures de photos :wink:

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

12 juin 2009, 17:44

Si c'est pour une miniature, je doute que le visiteur ne s'offusque que le rose de la bordure paraisse un peu plus terne sur l'image réduite, et que cela puisse l'inciter à ne pas aller voir l'orginal... ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

12 juin 2009, 19:01

je suis perfectionniste c'est comme ca, la rose doit rappeler le thème graphique de la galerie, et celui en sortie est immonde

bref, tan pis je me rabats sur le png quitte à avoir des cachalots en guise d'userbars

Mammouth du PHP | 991 Messages

13 juin 2009, 10:41

J'ai mit 10 minutes a trouver la différence entre les deux images :langue:
DevOps, Symfony4, Hoa

Mistic
Invité n'ayant pas de compte PHPfrance

13 juin 2009, 11:48

on a le sens esthétique ou on l'a pas :lol: