[PHP-GD] Miniature et transparence.
3 messages
• Page 1 sur 1
-

link182 - WRInaute occasionnel

- Messages: 474
- Inscription: 26 Juil 2005
[PHP-GD] Miniature et transparence.
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;
}
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 passionné

- Messages: 1800
- Inscription: 3 Nov 2004
tu définis une couleur de ton image comme étant transparente
http://us3.php.net/imageColorTransparent
http://us3.php.net/imageColorTransparent
-

link182 - WRInaute occasionnel

- Messages: 474
- Inscription: 26 Juil 2005
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
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
3 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Librairie GD php et transparence - gros besoin d'aide
- [RESOLUE]Erreur 404 avec un script php de miniature d'image
- Transparence de png
- Librairie GD et transparence !
- Css et transparence
- Google s'essaye à la transparence
- Watermark et transparence png
- transparence avec la librairie GD
- Gestion de la transparence GIF
- Pb avec la Transparence PNG-24
- Participez au projet 3x3 ! - 19-07-2004
- Eric Schmidt veut créer un laboratoire Google en France - 23-06-2006
- AD42 : acheter et vendre de la publicité sur Internet facilement - 17-10-2005
- Télécharger Google Chrome 7 en français (téléchargement gratuit) - 25-10-2010
Consultez la description détaillée des produits ou services de Google suivants : Google Video
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
