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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
<?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 :


Merci d'avance de votre aide.