Créer une image gif transparent contenant un texte

Contenu du snippet

Le script suivant permet de créer une image GIF transparente avec un texte.
Cette fonction est très utile pour afficher des adresses mails non détectable pour les bots de spam.

Par rapport aux autres sources que j'ai pu trouver sur le sujet celle-ci a les avantages suivants :
- fond transparent pour une meilleure intégration à l'esthétique du site
- simplicité d'utilisation (adresse .php avec un argument GET)

Source / Exemple :


<?php 
/**************************************************************************

  • texteimage.php
  • Création d'une image gif transparent pour affichage d'un texte dans une image
  • Licence GPL (c)janvier 2008
  • Auteur : David Dorchies (dorch chez laposte . net)
  • Site internet : http://www.dorch.fr
  • Exemple d'utilisation :
  • Pour afficher une image à la place d'un texte dans une page web insérer
  • le code HTML suivant :
  • <img scr="texteimage.php?txt=jean.dupont@toto.com&fontsize=4">
  • NB : dans cet exemple le fichier texteimage.php doit se trouver dans le même
  • répertoire que la page HTML en question.
*
  • L'argument fontsize est facultatif et est réglé à 4 par défaut
  • L'argument base64 est facultatif et est réglé à 0 par défaut
  • base64=1 veut dire que txt est encodé en base64
  • Nécessite une librairie GD différente de la 1.6 (absence des fonctions GIF)
  • /
$err=''; if (!function_exists("ImageCreate")) $err='Erreur : Librairie GD non installée !'; if (!$err && !function_exists("imagegif")) $err='Mauvaise version de librairie GD : absence de la fonction imagegif'; if($err) { header('Content-Type: text/plain'); echo $err; return; } //Définition du texte $txt='no text'; if(isset($_GET['txt']) && $_GET['txt']!='') { $txt=html_entity_decode($_GET['txt']); } //définition de la taille $corp=4; if(isset($_GET['fontsize']) && $_GET['fontsize']!='') { $corp = $_GET['fontsize']; } if(isset($_GET['base64']) && $_GET['base64']==1) { $txt = base64_decode($txt); } $haut = $corp*4.5; //Hauteur de l'image à créer $larg = strlen($txt)*$haut/1.6; //Largeur de l'image à créer $img = imagecreate($larg, $haut); //Création de l'image $background_color = imagecolorallocate ($img, 0, 0, 0); $transparent_color = imagecolortransparent($img,$background_color); $noir = imagecolorallocate($img,0,0,0); imagestring($img, $corp,0,0, $txt,$noir); header("Content-type: image/gif"); imagegif($img); ?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.