Page 1 sur 1

Imagecopy et problème avec une coloration noir

Posté : 01 sept. 2010, 13:20
par retardeur
Bonjour,

J'essaye de faire un script qui génère automatiquement un texte sur une image. Mais, le problème c'est que lors de la copie du texte sur l'image, une partie de l'image est remplite de noir :
<?php
header ("Content-type: image/png");
$imageTitre = imagecreatetruecolor(500, 60);//image contenant le texte du titre
$imageFichier = "121240b.jpg";
$screenShoot = imagecreatefromjpeg($imageFichier);//image contenant la photo sur laquelle on va mettre le texte
$nomCarte = $_GET['nomCarte'];

//couleurs
$transparent = imagecolorallocatealpha($imageTitre, 255, 255, 255, 127);
$gris = imagecolorallocate($imageTitre, 200, 200, 200);
$blanc = imagecolorallocate($imageTitre, 255, 255, 255);
$noir = imagecolorallocate($imageTitre, 0, 0, 0);
$rouge = imagecolorallocate($imageTitre, 255, 0, 0);
$grisDePolice = imagecolorallocate($imageTitre, 236, 227, 203);

//chargement de la police de caractère
$font = './tf2build.ttf';

//on remplit le titre d'une couleur transparente
imagefill($imageTitre, 0, 0, $transparent);

/*imagettftext($imageTitre,17,0,20, 20,$noir, $font, $nomCarte);
imagecopy ( $imageTitre, $imageTitre, 0, 0, 2, 2, 500, 60 );*/

//on place le texte
imagettftext($imageTitre,17,0,20, 20,$grisDePolice, $font, $nomCarte);

//recadrage du texte de manière a garder que le cadre intéressant
$cadreTexte = imageftbbox ( 17 , 0 , $font , $nomCarte );
$widthTitre = $cadreTexte[2]-$cadreTexte[6]+10;
$heightTitre = $cadreTexte[3]-$cadreTexte[7]+10;
$crop = imagecreatetruecolor($widthTitre, $heightTitre);
imagefill ( $crop , 0 , 0 , $transparent );
imagecopy ( $crop, $imageTitre, 0, 0, $cadreTexte[6]+19, $cadreTexte[7]+22, $widthTitre, $heightTitre );
$imageTitre = $crop;


//redimensionnage et recadrage de la photo de manière à ce qu'elle ne fasse que 425 pixel de large
$taille = getimagesize ( $imageFichier);
$width = 425;
$height = $taille[1] / ($taille[0]/425); // hauteur / (largeur / taille voulu)
$crop2 = imagecreatetruecolor($width, $height);
imagefill ( $crop2 , 0 , 0 , $transparent );
imagecopyresampled ( $crop2 , $screenShoot , 0 , 0 , 0 , 0 , $width ,$height , $taille[0] , $taille[1]);
$screenShoot = $crop2;

imagecopy( $screenShoot, $imageTitre, 0, 20, 0, 0, $width, $height);
ImagePng($screenShoot);

?> 
et voici le résultat :
Image

Merci d'avance de votre aide.