2010-11-08 8 views
2

Je voudrais générer une image de texte de police de fantaisie en utilisant GD.Images dynamiques basées sur le texte PHP

J'ai trouvé:

<?php 
// Settings 
$sText = 'This is just a test!'[email protected]$_GET['t']; // Text of heading 
$sFont = 'Bryant-Bold.ttf'; // Default font for headings 
$sMain = @$_GET['c'] ? $_GET['c'] : 0xF2AB27; // Get a font or default it 

// Calcuate the width of the image 
$arSize = imagettfbbox(24, 0, $sFont, $sText); 
$iWidth = abs($arSize[2] - $arSize[0]); 
$iHeight = abs($arSize[7] - $arSize[1]); 

// Create the image 
header("Content-Type: image/png"); // Set the content-type 
$hImage = imagecreatetruecolor(200, 24); 
ImageFill($hImage, 0, 0, IMG_COLOR_TRANSPARENT); 
imagesavealpha($hImage, true); 
imagealphablending($hImage, false); 
imagettftext($hImage, 20, 0, 0, 24, $sMain, $sFont, $sText); // Draw the text 
imagepng($hImage); // Generate the image 
imagedestroy($hImage); // Destroy it from the cache 
?> 

Mais il ressemble à ceci: http://img638.imageshack.us/img638/4575/testphp.png (côtelettes hors pièces)

Répondre

3

Vous utilisez une largeur fixe de 200 pour votre image de sortie!

$hImage = imagecreatetruecolor(200, 24); 

Vous devez calculera la largeur dynamique - probablement la $hImage variables est ce que vous devez utiliser:

$hImage = imagecreatetruecolor($hImage, 24); 
Questions connexes