[PHP-GD] Miniature et transparence.

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


link182
WRInaute impliqué
WRInaute impliqué
 
Messages: 473
Inscription: Mar Juil 26, 2005 13:30

[PHP-GD] Miniature et transparence.

Message le Mar Fév 21, 2006 12:33

Bonjour,

comment dire à GD qu'il me mette un fond transparent et nonblanc lorsqu'il me crée ma miniature ?

Car je dois afficher mon image sur des fonds aux couleurs différents, et c'est moche si ce n'est pas transparent...

imagecolorallocate($dst_img, 255, 255, 255);
--> 255,255,25 c'est pour le fond blanc, mais pour mettre de la transparence ?

Voici la fonction complète de la création de ma miniature :

function resize($source, $destination, $width, $height, $stretch, $quality) {

// 1 - Gestion des erreurs :
if (!file_exists($source)){
echo "Erreur : Fichier inexistant !";
return false;
}
if (!function_exists("ImageCreateFromJpeg")){
echo "Erreur : Librairie GD non installée !";
return false;
}
// 2 - Lecture de l'image et de son extension :
$ext = strtolower(strrchr(basename($source),'.'));
if($ext==".jpg" || $ext==".jpe" || $ext==".jpeg"){
$src_img=imagecreatefromjpeg($source);
}else{
if($ext==".gif"){
$src_img=imagecreatefromgif($source);
}else{
if($ext==".png"){
$src_img=imagecreatefrompng($source);
}else{
echo "Erreur : Extension incorrecte.";
}
}
}
if (!$src_img){
echo "Erreur : Lecture impossible de l'image !";
return false;
}
$w = imagesx($src_img);
$h = imagesy($src_img);
// 3 - Redimensionnement en largeur :
if (!$stretch) {
if ((($h * $width) / $w) > $height) {
$im_w = ($w * $height) / $h;
$im_h = $height;
} else {
$im_w = $width;
$im_h = ($h * $width) / $w;
}
} else {
$im_w = $width;
$im_h = $height;
}
$x = ($width-$im_w)/2;
$y = ($height-$im_h)/2;
// 4 - Création d'une image buffer :
$dst_img = imagecreatetruecolor($width, $height);
if (!$dst_img){
echo "Erreur : Buffer '".$dst_img."' non créé !";
return false;
}
$bgc = imagecolorallocate($dst_img, 248, 230, 244);
imagefilledrectangle($dst_img, 0, 0, $width, $height, $bgc);
imagecopyresized($dst_img,$src_img,$x,$y,0,0,$im_w,$im_h,$w,$h);
// 5 - Enregistrement de la miniature en .jpg :

touch($destination);
imagejpeg($dst_img,$destination,$quality);
return true;
}


Mumuri
WRInaute accro
WRInaute accro
 
Messages: 1792
Inscription: Mer Nov 03, 2004 10:50

Message le Mar Fév 21, 2006 12:52

tu définis une couleur de ton image comme étant transparente
http://us3.php.net/imageColorTransparent


link182
WRInaute impliqué
WRInaute impliqué
 
Messages: 473
Inscription: Mar Juil 26, 2005 13:30

Message le Mar Fév 21, 2006 13:22

mm pas très clair, si je définis le rouge, tous les pixels rouges de mon images seront transparents ?

A vrai dire, je dois avoir un problème dans la fonction qui me crée la miniature. J'aimerais qu'il ne me crée pas de bord sur les cotés (temps pis si le hauteur et la largeur sont plus petites que prévu).

Quelqu'un pourrait me renseigner ?

Merci


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités