25-01-2008, 11:27 AM
naholyr a écrit :Non, un bug n'est pas résolu en ajoutant un @ qui se contente de cacher l'erreur.
Déjà tu utilises imagecreatefrompng alors que tes images sont des jpeg, je pense que c'est une bonne piste pour éliminer ce warning...
Non, non dans un de mes messages précedents j'ai dit que j'avais convertit les jpg en png
Je ne suis pas sûr que le '@' cache une erreur, puisque je génère une image à la fin, ce que je ne peut faire sans le '@'. Il en va de même avec mon imagecreatetruecolor. Si je ne met pas de '@' je ne génère rien.
Code :
$image_carte = @imagecreatetruecolor (480,480) or die ("Impossible de crée un flux d'image GD");
//Je lit le fichier de map
$fp = fopen("maps/".$_POST['carte_edit'].".txt","r");
$dst_y=0;
while(!feof($fp))
{
$buffer = fgets($fp, 4096);
$images=explode(",",$buffer);
$nbre=count($images);
for($i=0;$i<$nbre;$i++)
{
$dst_x=$i*32;
$source=$rep.$images[$i];
$source1 = @imagecreatefrompng($source);
imagecopy($image_carte ,$source1,$dst_x,$dst_y,0,0,32,32);
}
$dst_y=$dst_y+32;
}
imagecolortransparent($image_carte);
imagepng($image_carte, "maps/".$_POST['carte_edit'].".png");
imageDestroy ($image_carte);
Ce code fonctionne. Je pense plutôt que le @ a une fonction bien particulière dépendant de la façon dont GD a été compilé/intégrer sur le serveur.
Le plus curieux c'est que j'ai vu des scripts avec et sans le '@'.