Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Redimensionnement d'image de qualite ???

6 réponses
Avatar
paul
Bonjour,

pour un blog en PHP, j'uploade des images en jpg que j'aimerais
redimensionner.

Je l'ai fait avec "imagecopyresized mais c'est assez moche au niveau
rendu...

Je l'ai fait ensuite avec "imagecopyresampled" pour avoir une meilleure
qualité (le process est plus long mais ce n'est pas grave).
La qualité est bien meilleure mais ça manque encore de piqué, et on sent
quand même une détérioration de l'image.

Comment faire pour avoir la meilleure qualité ?

J'ai entendu parler de "ImageMagick", ça vaut la peine par rapport à
"imagecopyresampled" ?

Merci pour vos conseils !
PAul

6 réponses

Avatar
Christophe Meresse

Je l'ai fait avec "imagecopyresized mais c'est assez moche au niveau
rendu...


Normalement le résultat ne doit pas être moche.
Je pense que le problème vient du fait que tu ne crée pas l'image
destination en truecolor.
Est-ce que tu utilises bien imagecreatetruecolor ?

Lis http://ch2.php.net/manual/en/function.imagecopyresized.php
En particulier la note:

Note : Il y a un problème dû aux limitations de la taille de la
palette (255 + 1 couleurs différentes). Filtrer ou rééchantillonner
une image demande plus de 255 couleurs, une approximation est alors
utilisée pour calculer le nouveau nombre de couleurs. Avec une
palette, si une nouvelle couleur ne peut être allouée, la couleur la
plus proche (en théorie) est utilisée ; ce n'est pas toujours celle
qui est la plus proche visuellement. Cela peut générer des problèmes
étranges, comme des images blanches. Pour éviter ce problème, passez
en image TrueColor, comme celles générée par la fonction
imagecreatetruecolor().

A+
Christophe

Avatar
paul
In article ,
"Christophe Meresse" wrote:


Je l'ai fait avec "imagecopyresized mais c'est assez moche au niveau
rendu...


Normalement le résultat ne doit pas être moche.
Je pense que le problème vient du fait que tu ne crée pas l'image
destination en truecolor.
Est-ce que tu utilises bien imagecreatetruecolor ?

Lis http://ch2.php.net/manual/en/function.imagecopyresized.php
En particulier la note:



Oui j'utilise bien imagecreatetruecolor.
Et ce avec imagecopyresize ou imagecopyresampled.

Avec imagecopyresize les vignettes ne sont pas terribles.
La qualité est bien meilleure (et acceptable) avec imagecopyresampled,
mais le process est plus long.

Ce que je lis sur le web recoupe ces infos.

Par contre ce que je ne sais pas c'est si j'aurais de meilleurs
résultats en utilisant la librairie ImageMagick.
Ce n'est pas la durée du process qui m'importe mais bien le résultat
visuel.

J'essaie de tester mais comme je suis une bille en PHP je n'y arrive pas
!

Dans le code PHP, j'ai remplacé :

imagecopyresampled($resized_img, $new_img, 0, 0, 0, 0, $newwidth,
$newheight, $width, $height);

par :
/usr/bin/convert -sample 25%x25% $resized_img $new_img

mais ça ne marche pas...
Si une bonne âme pouvait m'indiquer ce qu'il faut faire comme code...


Avatar
Jean-Marc Molina
paul wrote:
Par contre ce que je ne sais pas c'est si j'aurais de meilleurs
résultats en utilisant la librairie ImageMagick.
Ce n'est pas la durée du process qui m'importe mais bien le résultat
visuel.


Il faudrait savoir quels algorithmes sont utilisés par GD et ImageMagick. À
mon avis la balance de celui de la GD est très bien au niveau rapport
qualité/performance.

Sinon rassures-nous, tu redimensionnes bien l'image pour une plus petite
taille ? Pour générer des miniatures par exemple ? Parce que pour un
agrandissement il est normal que tu perdes en qualité.

Avatar
paul
In article <4576fab7$0$22859$,
Jean-Marc Molina wrote:

paul wrote:
Par contre ce que je ne sais pas c'est si j'aurais de meilleurs
résultats en utilisant la librairie ImageMagick.
Ce n'est pas la durée du process qui m'importe mais bien le résultat
visuel.


Il faudrait savoir quels algorithmes sont utilisés par GD et ImageMagick. À
mon avis la balance de celui de la GD est très bien au niveau rapport
qualité/performance.

Sinon rassures-nous, tu redimensionnes bien l'image pour une plus petite
taille ? Pour générer des miniatures par exemple ? Parce que pour un
agrandissement il est normal que tu perdes en qualité.
Oui, oui...



Je n'avais pas précisé de valeur pour la qualité du imagejpeg => je me
récupérais un 75% jpg pour le imagecopyresampled
Ceci dit :
- même à 100% on est moins précis qu'avec ImageMagick (il y a comme un
blur sur toute l'image)
- j'ai été surpris mais on est plus lourd avec imagecopyresampled

Mais si j'avais mis les 100% en qualité tout de suite, je n'aurais pas
eu l'idée d'aller chercher ailleurs et je me serais très bien contenté
de imagecopyresampled !...

En dehors de la portabilité de ImageMagick (je suis sur Mac et je ne
pense pas pouvoir l'installer en local :( ) j'en suis très satisfait.


Paul


Avatar
Christophe Meresse

Ceci dit :
- même à 100% on est moins précis qu'avec ImageMagick (il y a comme un
blur sur toute l'image)


Ca m'étonne vraiment. Si tu as le moyen de nous montrer le resultat
sur un site (ou si tu veux me les envoyer par mail), je serais assez
curieux de voir le résultat.

A+
Christophe

Avatar
Yttrium
Bonjour,

pour un blog en PHP, j'uploade des images en jpg que j'aimerais
redimensionner.

Je l'ai fait avec "imagecopyresized mais c'est assez moche au niveau
rendu...

Je l'ai fait ensuite avec "imagecopyresampled" pour avoir une meilleure
qualité (le process est plus long mais ce n'est pas grave).
La qualité est bien meilleure mais ça manque encore de piqué, et on sent
quand même une détérioration de l'image.

Comment faire pour avoir la meilleure qualité ?

J'ai entendu parler de "ImageMagick", ça vaut la peine par rapport à
"imagecopyresampled" ?

Merci pour vos conseils !
PAul



Salut,

Moi j'utilise depuis toujours NConvert en ligne de commande.
Ca marche trés bien, c'est puissant, et la qualité est au rendez vous.

Salutations.


--
[- Yttrium - http://www.danstesyeux.com -]
Le temps ne fait rien à l'affaire, quand on est con...
on est con...