Discussion:
redimensionner une image avec un fond transparent
(trop ancien pour répondre)
Y a personne
2008-12-07 22:41:10 UTC
Permalink
Bonjour,

je redimensionne des images dynamiquement Mais je n'arrive pas à avoir
un fond transparent (il est noir).

j'ai testé avec imagecopy() fichier transparent et image modifié ou en
générant une image transparente... mais sans succès.

Auriez vous un exemple ?

merci
Olivier Miakinen
2008-12-07 23:01:06 UTC
Permalink
Post by Y a personne
je redimensionne des images dynamiquement Mais je n'arrive pas à avoir
un fond transparent (il est noir).
j'ai testé avec imagecopy() fichier transparent et image modifié ou en
générant une image transparente... mais sans succès.
Auriez vous un exemple ?
Si tu baragouines l'anglais, j'ai l'impression que ceci répond a ta
question :
http://fr2.php.net/manual/fr/function.imagecopyresized.php#76648
Y a personne
2008-12-08 00:29:40 UTC
Permalink
Post by Olivier Miakinen
Post by Y a personne
je redimensionne des images dynamiquement Mais je n'arrive pas à avoir
un fond transparent (il est noir).
j'ai testé avec imagecopy() fichier transparent et image modifié ou en
générant une image transparente... mais sans succès.
Auriez vous un exemple ?
Si tu baragouines l'anglais, j'ai l'impression que ceci répond a ta
http://fr2.php.net/manual/fr/function.imagecopyresized.php#76648
merci

je viens de tester le script et il fait la même chose que le mien.

Je reformule ce que je voudrais :

-Générer une image de par ex: 300*300, ca c'est ok
-réduire une image avec des proportions et si elle est plus petite que
300*300 faire en sorte que ce qui est entre l'image et la bordure soit
transparent. Et il est toujours noir

J'y suis à moitié arrivé avec mon script mais le problème est que mon
image réduite est à moitié translucide. Et ca je ne sais pas pourquoi

merci
cedric
2008-12-08 19:57:07 UTC
Permalink
Le Mon, 08 Dec 2008 00:29:40 +0000, Y a personne a écrit :

'lut,
-Générer une image de par ex: 300*300, ca c'est ok -réduire une image
avec des proportions et si elle est plus petite que 300*300 faire en
sorte que ce qui est entre l'image et la bordure soit transparent. Et il
est toujours noir
As-tu défini une couleur, pour cet espace entre l'image et la bordure ?
Si non, remplis ton image avec une couleur, avant d'y coller l'image
redimentionnée.

Après, moi, je fais comme ça :

// J'importe mon image sous le nom de $img_in
// je créé $img_out, qui est une image vierge
// $img_out est l'image qui sera affichée
// j'attribue une couleur de fond à $img_out
// Je manipule img_in en fonction de mes besoin
// je colle img_in dans img_out (imagecopyresampled)
// La couleur transparente est appliquée en dernier lieu,
// après toutes les autres manipulations sur l'image
// On cherche d'abord la couleur qu'on veut
// transparente dans l'image : (ici une sorte de rose pâle)
$colorTransparent=imageColorclosest($img_out,255,240,240);
// et on la déclare transparente
imagecolortransparent($img_out,$colorTransparent);

Ca donne un truc comme ça :
http://www.nancy-guide.net/photographies/vignette-villa-bergeret-vitrail-
Ecole-de-Nancy-Jacques-Gruber-100378.jpg
(ne pas se fier à l'extension, c'est une image png. :-)

Une autre solution serait peut-être de simplement redimentionner en
conservant le ratio longueur / hauteur ?

Loading...