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
|
function creer_image($text,$font,$fonSize,$textColor,$background)
{
header("Content-type: image/png");
### Coverti la couleur html du background en couleur RGB
if( eregi( "([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})", $background, $bgrgb ) )
{$bgred = hexdec( $bgrgb[1] ); $bggreen = hexdec( $bgrgb[2] ); $bgblue = hexdec( $bgrgb[3] );}
### Coverti la couleur html du texte en couleur RGB
if( eregi( "([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})", $textColor, $textrgb ) )
{$textred = hexdec( $textrgb[1] ); $textgreen = hexdec( $textrgb[2] ); $textblue = hexdec( $textrgb[3] );}
### Crée une image temporaire
$im = imagecreate(200, 16);
// Calculer la taille du texte
$fontcolor = imagecolorallocate($im, $textred,$textgreen,$textblue);
$bounds=imagettftext($im, $fonSize, 0, 0, 0, $fontcolor, $font, $text);
$text_width=abs($bounds[4]-$bounds[0])+4;
$text_height=abs($bounds[5]-$bounds[1])+4;
// recréer l'image pour contenir le texte
imagedestroy($im);
$im = imagecreate($text_width, $text_height);
### Couleur du Background
$bgcolor = imagecolorallocate($im, $bgred,$bggreen,$bgblue);
### Couleur du texte
$fontcolor = imagecolorallocate($im, $textred,$textgreen,$textblue);
# Couleur de fond
imagefilledrectangle($im, 0, 0, $text_width, $text_height, $bgcolor);
// afficher le texte
imagettftext($im, $fonSize, 0, 2, $text_height-abs($bounds[1])-2, $fontcolor, $font, $text);
// Utiliser imagepng() donnera un texte plus claire,
// comparé à l'utilisation de la fonction imagejpeg()
imagepng($im);
imagedestroy($im);
} |
Partager