Bonjour,

J'ai un soucis incompréhensible pour moi...

Je génère une image qui à un fond bleu, je lui rajoute une image grâce à imagecreatefrompng, un titre et une zone verte dans laquelle je place du texte. Pour une seule image png, j'arrive à avoir le résultat voulu. Avec d'autres images, mon bleu et mon vert... Et bien ne le sont plus ! Et mon image ne garde pas ses couleurs de base non plus. Voici mon code :

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
52
53
54
55
56
57
58
59
60
61
 
<?php
//Création des images
	$fond = imagecreate(194, 309);
	$image = imagecreatefrompng("imgdefaut.png");
	$zone_image = imagecreate(168, 107);
	$titre = imagecreate(194, 50);
	$desc = imagecreate(167, 114);
	$son = imagecreatefrompng("son04.png");
	$im = imagecreatefrompng("image04.png");
	$video = imagecreatefrompng("video04.png");
	$anim = imagecreatefrompng("animation04.png");
 
	$bleu = imagecolorallocate($fond, 154, 182, 222);
 
	$transp = imagecolorallocate($zone_image, 154, 182, 222);
	imagecolortransparent($zone_image, $transp);
	$transp2 = imagecolorallocate($titre, 22,22,22);
	$noir = imagecolorallocate($titre, 0,0,0);
	imagecolortransparent($titre, $transp2);
	$vert = imagecolorallocate($desc, 178, 175, 20);
	$noir2 = imagecolorallocate($desc, 0,0,0);
 
	if((imagesx($image) > imagesy($image)) && (imagesx($image) >= imagesx($zone_image))) {
		$hauteur = imagesx($zone_image) * imagesy($image) / imagesx($image);
		imagecopyresampled($zone_image, $image, 0, 0, 0, 0, imagesx($zone_image), $hauteur, imagesx($image), imagesy($image));
		$y = ((imagesy($zone_image) - $hauteur) / 2) + 11;
		imagecopymerge($fond, $zone_image, 13, $y, 0, 0, imagesx($zone_image), imagesy($zone_image), 100);
	}
	if((imagesx($image) <= imagesy($image)) && (imagesy($image) >= imagesy($zone_image))) {
		$largeur = imagesy($zone_image) * imagesx($image) / imagesy($image);
		imagecopyresampled($zone_image, $image, 0, 0, 0, 0, $largeur, imagesy($zone_image), imagesx($image), imagesy($image));
		$x = ((imagesx($zone_image) - $largeur) / 2) + 13;
		imagecopymerge($fond, $zone_image, $x, 11, 0, 0, imagesx($zone_image), imagesy($zone_image), 100);
	}
	if((imagesy($image) <= imagesy($zone_image)) && (imagesy($image) <= imagesy($zone_image)))
		imagecopymerge($fond, $image, 13, 11, 0, 0, imagesx($image), imagesy($image), 100);
 
	$bbox = imageftbbox(15, 0, "GOTHIC.ttf", 'Kalimucho');
	$x = $bbox[0] + (imagesx($titre) / 2) - ($bbox[4] / 2) - 5;
	$y = $bbox[1] + (imagesy($titre) / 2) - ($bbox[5] / 2) - 5;
	imagefttext($titre, 15, 0, $x, $y, $noir, "GOTHIC.ttf" , 'Kalimucho');
	imagecopymerge($fond, $titre, 0, 115, 0, 0, imagesx($titre), imagesy($titre), 100);
 
	//Max 25 caractères par ligne (espaces inclus !)
	$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean suscipit suscipit elementum. Praesent id tortor dui, in aliquam quam. Nunc sed nibh in odio faucibus consectetur in commodo felis. Proin vitae risus id risus lobortis posuere sit amet non velit. Fusce velit libero, posuere ac volutpat id, commodo et massa. Maecenas accumsan mattis interdum. Integer dapibus scelerisque congue. Nam est velit, condimentum in convallis ac, egestas at dui. Fusce orci metus, malesuada nec sagittis nec, fringilla sed tellus. Duis et massa dolor, nec volutpat nibh.";
	$newtext = wordwrap($text, 33, "\n");
	imagefttext($desc, 8, 0, 0, 20, $noir2, "arial.ttf", $newtext); 
	imagecopymerge($fond, $desc, 12, 153, -5, 4, imagesx($desc), imagesy($desc), 100);
 
	ImageRectangle ($fond, 12, 153, 179, 266, $noir2);
 
	imagecopymerge($fond, $son, 47, 273, 0, 0, imagesx($son), imagesy($son), 100);
	imagecopymerge($fond, $im, 84, 272, 0, 0, imagesx($im), imagesy($im), 100);
	imagecopymerge($fond, $video, 120, 274, 0, 0, imagesx($video), imagesy($video), 100);
	imagecopymerge($fond, $anim, 150, 271, 0, 0, imagesx($anim), imagesy($anim), 100);
 
	ImageRectangle ($fond, 0, 0, 193, 308, $noir2);
 
	imagepng($fond, "result.png");
?>
Si vous pouviez m'aider svp. Merci