La raison d’être
Vous savez sans doute qu’il est impossible d’être sûr que la police de caractères que vous avez choisi sera celle effectivement affichée sur l’écran de vos visiteurs. Une seule solution à cela : utiliser des images.
Mais pour une système dynamique tel que SPIP, il faut également que les images soient générées dynamiquement.
Pour cela je vous propose d’utiliser un filtre dans le fichier mes_fonctions.php3 et la librairie GD de PHP.
Comment s’y prendre
La première chose à faire est d’ajouter la fonction suivante dans votre fichier mes_fonctions :
function enimage($texte,$taille=20,$align="centre"){
return "<img
src=\"/IMG/img.php?texte=$texte&taille=$taille&align=$align\"
alt=\"$texte\" />";
}
Puis vous devez créer un fichier nommé img.php dans le dossier IMG, et y coller ceci :
<?
$welcome_img= imagecreatefrompng("welcome_img.png");
//image de fond a utiliser (en .png)
$text_color=imagecolorallocate($welcome_img,51,0,150);
//couleur du texte
$font="gothicb.ttf";
//police de caracteres
$path="/data/www/m/o/ndomaine.com/html/images/";
//Chemin vers la police
$path="d:\\html\\spip\\IMG\\";
/* Rien a changer apres ceci
-----------------------------
*/
$taille=$HTTP_GET_VARS["taille"];
$texte=$HTTP_GET_VARS["texte"];
$align=$HTTP_GET_VARS["align"];
$box=imagettfbbox ($taille, 0, $path.$font, $texte);
$width=$box[4]-$box[6];
if ($align=="centre"){
$px = (imagesx($welcome_img)-$width)/2;
}elseif($align=="gauche"){
$px = 4;
}elseif($align=="droite"){
$px = imagesx($welcome_img)-$width-5;
}
imagettftext ($welcome_img,$taille,0, $px, 38, $text_color, $path.$font, $texte);
imagesavealpha ( $welcome_img, TRUE);
header("Content-Type: image/png");
header("Expires: " . date("r", time()+7*24*60*60));
imagepng($welcome_img);
?>
Modifier le fichier img.php
Il faut editer quelques lignes :
Dans celle-ci,
$welcome_img= imagecreatefrompng("welcome_img.png");
remplacez « welcome_img.png » par le nom de votre image (au format png).
$text_color=imagecolorallocate($welcome_img,51,0,150);
ici, il faut changer les chiffres pour choisir la couleur au format RGB.
$font
est le nom de la police à utiliser et $path
est le chemin absolu vers cette police.
Chez mon hebergeur, le chemin absolu de la racine est /data/www/m/o/ndomaine.com/html/
, et chez le vôtre ca depend...
On peut l’obtenir grâce à la variable $_SERVER['DOCUMENT_ROOT']
puis y ajouter le chemin relatif vers le fichier de la police de caractère, chez moi /images/, ce qui donne :
/data/www/m/o/ndomaine.com/html/images/
Utiliser le filtre
Pour appeler le filtre, il suffit de faire par exemple :
[(#TITRE|enimage)]
Vous pouvez aussi changer la taille du texte par défaut en faisant :
[(#TITRE|enimage{$taille=50})]
ou la hauteur du texte est exprimée en pixels.
On peut aussi changer l’alignement par rapport aux bords de l’image en faisant au choix :
[(#TITRE|enimage{$align="gauche"})]
,
[(#TITRE|enimage{$align="centre"})]
, ou
[(#TITRE|enimage{$align="droite"})]
Il est bien sur possible de combiner les deux comme ceci :
[(#TITRE|enimage{$align="droite", $taille=30})]
Le résultat
Voici un exemple de ce qu’il est possible d’obtenir :
Avertissement
Attention à une chose toutefois : les images n’étant pas mise en cache, elles sont recalculées à chaque chargement de la page, ce qui sur des sites à forte fréquentation et/ou en hébergement mutualisé, peuvent causer quelques ralentissements et une charge plus importante du serveur.
Chaque cas étant particulier, vous pouvez essayer cette méthode, et si les ralentissements sont trop fréquents, l’abandonner, ou mieux, développer un sytème de cache.
Discussions par date d’activité
Une discussion
cela marche tres bien. merci :)
il y a petite correction à faire, pour utiliser le filtre, ne pas utiliser
mais simplement
references :
- utilisation filtre spip
- une version officielle de ce filtre est en cours de dev. (2005-05)
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |