iowafr | bonjour, j'ai un script php qui recupere une image a distance et qui copie une zone de cette image sur une autre.
le probleme est que la zone copie qui doit etre colle possede un fond et sa fait pas tres beau j'aimerais pouvoir changer ce fond pour le rendre transparent comme c'est une zone d'une image distante je pense qu'il faudrait utiliser une fonction qui remplace une couleur par une autre voici mon code en complet :
Code :
- <?php
- $username = "iowafr";
- $invert = "false"; //set to true to invert the text color
- //generate the image
- $im = imagecreatefrompng("base.png" );
- //get xfire image
- $xfire = imagecreatefrompng("http://fr.miniprofile.xfire.com/".$username.".png" );
- $transparent = imagecolorallocate ($xfire, 234, 237, 242);
- imagecolortransparent ($xfire,$transparent);
- //background and text color
- $background = imagecolorallocatealpha ( $im, 255, 255, 255, 127 );
- $ampcolor = imagecolorallocate($im, 25, 47, 127);
- $textcolor = imagecolorallocate($im, 0, 0, 0);
- //set font
- putenv('GDFONTPATH=' . realpath('.'));
- $font = "police";
- $fontsize = 10;
- //write the strings
- imagettftext($im, $fontsize, 0, 80, 20, $textcolor,$font, "Pseudo :" );
- imagettftext($im, $fontsize, 0, 86, 35, $textcolor,$font, "Statut :" );
- imagettftext($im, $fontsize, 0, 70, 52, $textcolor,$font, "Semaine :" );
- imagettftext($im, $fontsize, 0, 78, 67, $textcolor,$font, "En tout :" );
- //put xfire stuff down
- $colorindex = imagecolorat($xfire, 131, 55);
- $colorrgb = imagecolorsforindex($xfire,$colorindex);
- if ($colorrgb['red'] == 14 && $colorrgb['green'] == 38 &&
- $colorrgb['blue'] == 128)
- $statinvert = "true";
- imagecopymerge($im, $xfire, 126, 8, 128, 32, 260, 16, 100);
- // name
- imagecopymerge($im, $xfire, 146, 24, 147, 48, 260, 16, 100);
- // status text
- imagecopymerge($im, $xfire, 146, 38, 172, 79, 266, 31, 100);
- // this week all time text
- if ($statinvert == "true" )
- imagecopymerge($im, $xfire, 126, 24, 127, 48, 20, 16, 100);
- if ($statinvert != "true" )
- imagecopymerge($im, $xfire, 126, 24, 127, 48, 20, 16, 100);
- imagecopymerge($im, $xfire, 126, 38, 152, 78, 20, 32, 100);
- header("Content-type: image/png" );
- imagepng($im);
- imagedestroy($xfire);
- imagedestroy($im);
- ?>
|
comme vous pouvez le voir lors du test ( si on cree par exemple une image base.png vide ) c'est que ce qui serat colle dessus aura un background pas beau merci d'avance pour vos reponses |