imagePNG() dans une fonction

  • Auteur de la discussion Auteur de la discussion sff
  • Date de début Date de début
WRInaute impliqué
Bonjour, j'ai un petit soucis avec imagePNG() dans une fonction. En effet le code ne me retourne rien (page blanche) .

Pourtant le code a l'air correct.

function result_banners_generator() {// Generateur de bannières.

$posX = @$_GET['x'];
$posY = @$_GET['y'];
$truetype = @$_GET['font'];
$image = @$_GET['banner'];
$angle = @$_GET['angle'];
$texte = @$_GET['text'];
$taille = @$_GET['size'];
$RGBr = @$_GET['RGBr'];
$RGBg = @$_GET['RGBg'];
$RGBb = @$_GET['RGBb'];

if ($posX == NULL) {$posX = 5;} // Distance bord gauche/Debut texte
if ($posY == NULL) {$posY = 55;} // Distance bord haut/bas texte
if ($truetype == NULL) {$truetype = "blockup.ttf";} // Nom du fichier de font
if ($image == NULL) {$image ="bandeau.png";} // Nom du fichier image
if ($angle == NULL) {$angle = 0;} // Angle en degre
if ($texte == NULL) {$texte = 'Texte';} // Texte
if ($taille == NULL) {$taille = 20;} // Texte
if ($RGBr == NULL) {$RGBr = 255;} // RGB : coulaur R
if ($RGBg == NULL) {$RGBg = 255;} // RGB : couleur G
if ($RGBb == NULL) {$RGBb = 255;} // RGB : couleur B

header("Content-type: image/png");

$img = imagecreatefrompng('community/generateur/bannieres/'.$image);

$color = imagecolorallocate($img,$RGBr,$RGBg,$RGBb);
$couleurSM = imagecolorallocate($img,0xC3,0xC9,0xD4);
$blanc = imagecolorallocate($img,255,255,255);
$noir = imagecolorallocate($img,0,0,0);

ImageTTFText($img,$taille,$angle,$posX,$posY,$color,'community/generateur/fonts/'.$truetype,$texte);


ImagePNG($img);

ImageDestroy($img);

}
 
WRInaute impliqué
Salut,

Je ne comprends pas trop bien pourquoi tu attribues tes couleurs trois fois :

$couleurSM = imagecolorallocate($img,0xC3,0xC9,0xD4);
$blanc = imagecolorallocate($img,255,255,255);
$noir = imagecolorallocate($img,0,0,0);

Ces couleurs tu ne les utilises pas pour créer une bordure ou une forme, donc une seule devrait suffire.

En plus, je fais une hypothèse mais il me semble que tes codes couleurs doivent être des valeurs rgb (entre 0 et 255), donc la variable $couleurSM n'est pas attribuée et fait peut-être planter ton script.

Le problème pourrait aussi venir de l'utilisation de ta fonction, comment l'appelles-tu dans ton script ?

La façon la plus simple de tester, sans fonction, c'est en appelant le script dans une balise <img> :

Code:
<img src="imagepng.php" />

J'espère que ces pistes là peuvent t'aider ...

++
 
WRInaute impliqué
Oui en effet merci, il s'agissait d'une erreur toute bete lors de l'appel de l'image. Sinon oui exact, les 3 lignes de couleur ne sont pas utile, merci pour l'info.
 
WRInaute impliqué
Tiens une petite question, il y a pas possibilité de simplifier ceci?

$controlrow['title'] = $_POST['title'];
$controlrow['size'] = $_POST['size'];
$controlrow['RGBr'] = $_POST['RGBr'];
$controlrow['RGBb'] = $_POST['RGBb'];
$controlrow['RGBg'] = $_POST['RGBg'];
$controlrow['x'] = $_POST['x'];
$controlrow['y'] = $_POST['y'];
$controlrow['angle'] = $_POST['angle'];
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut