uZine 3

Accueil > ... > Forum 460264

> utiliser d’autres polices

17 octobre 2006, 22:05

http://www.grafactory.net/blog/2003/11/18/9-des-beaux-titres-a-la-volee-avec-gd

Pour la conception d’un site, on est toujours limité dans le choix des polices de caractère aux polices de périphérique (Verdana, Times, Georgia...). Donc, c’est souvent pratique ce petit truc avec la librairie graphique GD qui permet de créer des images de texte à la volée.

Par exemple sur un site ou les titres sont dans une police un peu "originale" (voir les exemples à la fin) cette technique évite de créer toutes les images correspondantes aux textes dans photoshop. Encore plus pratique quand le site est multilingue car les textes des images sont traduits à la volée. Au lieu d’avoir 50 images, on a seulement un fichier !

Voici en gros ce que ça donne, à modifier à votre convenance. On passe la taille de la police et le texte du titre en paramètre

On intègre les images avec un simple

Et le fichier titres.php

<? header("content-type: image/png");

if (empty($s)) { $s = 22; } //la taille du texte on peut la passer en paramètre


//la police de caractère à placer dans un repertoire accesible en écriture en (ici /font/)
$font= dirname($_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'])."/font/arial.ttf";

$size = imagettfbbox($s,0,$font,$text); // taille de l'image
$dx = abs($size[2]-$size[0]);
$dy = abs($size[5]-$size[3]);
$xpad=5; //espacement x
$ypad=18; //espacement y

$im = imagecreate($dx+$xpad,$dy+$ypad);

$white = imagecolorallocate($im, 255,255,255);
$blue = imagecolorallocate($im, 129,35,69);

imagettftext($im, $s, 0, (int)($xpad/2), $dy+(int)($ypad/2), $blue, $font, $text);

imagepng($im);
imagedestroy($im); ?>

Voir en ligne : http://www.grafactory.net/blog/