edito
forum (21 057)
making of
preview newsletter
photoshop shortcuts
plan du site
b�tisier (24)
nouveaut�s (67)
mises � jour
banni�res (92)
liste de diffusion
infos l�gales
 


 

Devenez awares ! Et essayez de survivre.




aper�u
 

 

login | logout
g�rez votre profil
devenez membre
membres (2161)
anniversaires (796)
awares (349)
mickeys (343)
notables (83)
mod�rateurs (9)
votre vie priv�e

 

 

amis (22)
gfx fran�ais (58)
gfx autres (383)
pixel art (67)
ascii art (0)
paint/draw (97)
communaut�s (27)
portails gfx (16)
ressources (36)
flash (253)
3D (38)
java (2)

proposez votre site
derni�res entr�es
al�atoire (999)
quicklist
top 10










































999 sites
945 102 hits
 
 

� propos des tutos
tous les tutos (48)
rechercher un tuto

tutos al�atoires
686 163 hits

 

 

screen fonts
brushes
softwares
 
 
 

 

stats publiques
infocentres
r�f�rents (25253)
refs quicklist (25253)
visiteurs uniques
awards

21 243 645 hits
 




ous serez probablement amen�s, g�n�ralement pour g�n�rer le contenu ou le menu d'une interface au pixel, � transformer une cha�ne de caract�res, quelle qu'elle soit, en une suite d'images repr�sentant respectivement les lettres de la chaine. La fonction de transformation de cha�ne en images est �minemment simple, aussi insitera-t-on sur la flexibilit�/adaptabilit� du code et la rigueur apport�e � celui-ci pour minimiser la quantit� de travail d�j� importante (26 lettres, 10 chiffres, 30 caract�res sp�ciaux - ponctuation et autres - soit environ 70 caract�res par planche graphique)


 

Cr�ez un r�pertoire lettres/ dans votre arborescence. Cr�ez un sous-r�pertoire d�signant la typo-image que vous voulez utiliser. Dans l'exemple suivant, on utilisera la typo 04b25 (voir ci-dessous) sans anti-alias : on aura cr�� un r�pertoire lettres/04b25/ . Dans ce r�pertoire on stockera les images repr�sentant chacune des lettres affichables (70 environ si la planche est assez compl�te, 30 voire 10 suffisent parfois).




Cr�ez sous photoshop une planche d'images standard : 26 lettres et 10 chiffres. Cadrez les images au plus pr�s des lettres (pas d'espacement) et sauvez les fichiers au format gif transparent sous les noms lettre_<lettre>.gif. Vous devriez avoir dans le r�pertoire lettres/04b25/ une trentaine de fichiers :

lettre_0.gif
lettre_1.gif
lettre_2.gif
...
lettre_a.gif
lettre_b.gif
...

Quand la planche est finie, cr�ez finalement un fichier spacer.gif de dimension 1x1 pixel, transparent ne contenant aucun calque. Vous pouvez maintenant fermer photoshop (cette �tape est passablement longue et laborieuse, accord�). Avec votre �diteur de texte pr�f�r�, cr�ez un nouveau fichier fonctions_lettres.php contenant une fonction transformer_en_images() qui accepte un param�tre (cha�ne de caract�res) et qui retourne une suite d'images au format HTML. Voici la fonction standard :

function transformer_en_images($chaine)
{
   $images_retournees="";
   // BOUCLE DE PARCOURS DE LA CHAINE
   for ($i=0;$i<strlen($chaine);$i++)
   {
      $caractere_lu=substr($chaine,$i,1);

      // VERIFICATION DE LA PRESENCE DU FICHIER
      if (is_file("../lettres/04b25/lettre_$caractere_lu.gif"))
      {
         // LE FICHIER EXISTE
         // AJOUT D'UNE IMAGE A LA SEQUENCE RETOURNEE
         $images_retournees.="<img src=../lettres/04b25/lettre_$caractere_lu.gif>";
         // AJOUT DE L'ESPACE INTER-LETTRE
         $images_retournees.="<img src=../lettres/04b25/spacer.gif width=1 height=1>";
      }
   }
   return ("$images_retournees");
}

Sauvez le fichier fonctions_lettres.php. La fonction transformer_en_images() lit caract�re par caract�re la cha�ne, remplace chacun des caract�res par son image respective et retourne une cha�ne au format HTML contenant les images. Entre chacune des lettres, elle aura ins�r� une image transparente spacer.gif pour cr�er l'espacement. Si le fichier-image n'existe pas, le caract�re lu est supprim� et la lettre n'est pas affich�e. La fonction n'est pas encore op�rationnelle comme le montre l'exemple ci-dessous, mais vous pouvez d�j� la tester :

<?
   include ("fonctions_lettres.php");
   $chaine="l'empire galactique";
   $images=transformer_en_images("$chaine");
   print ("$images");
?>

R�sultat :



Les �tapes suivantes consisteront � la rendre plus souple pour une utilisation plus g�n�ralis�e (param�trage de l'espacement, du r�pertoire d'images, affichage des caract�res sp�ciaux,etc).


 

Vous aurez remarqu� que certains caract�res sp�ciaux n'ont pas �t� interpr�t�s par la fonction parce que leur �quivalent en fichier n'existait pas (espace, apostrophe, etc). Nous allons g�rer individuellement ces cas particuliers (lettre_..gif ou lettre_/.gif ne sont pas des noms de fichiers valides) en surchargeant notre fonction :

function transformer_en_images($chaine)
{
   $images_retournees="";
   // BOUCLE DE PARCOURS DE LA CHAINE
   for ($i=0;$i<strlen($chaine);$i++)
   {
      $caractere_lu=substr($chaine,$i,1);

      // GESTION DES CARACTERES SPECIAUX
      if ($caractere_lu==".") $caractere_lu="point";
      if ($caractere_lu=="'") $caractere_lu="apostrophe";
      if ($caractere_lu==":") $caractere_lu="deux_points";
      if ($caractere_lu=="/") $caractere_lu="slash";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu==" ") $caractere_lu="espace";

      // VERIFICATION DE LA PRESENCE DU FICHIER
      if (is_file("../lettres/04b25/lettre_$caractere_lu.gif"))
      {
         // LE FICHIER EXISTE
         // AJOUT D'UNE IMAGE A LA SEQUENCE RETOURNEE
         $images_retournees.="<img src=../lettres/04b25/lettre_$caractere_lu.gif>";
         // AJOUT DE L'ESPACE INTER-LETTRE
         $images_retournees.="<img src=../lettres/04b25/spacer.gif width=1 height=1>";
      }
   }
   return ("$images_retournees");
}

Cr�ez maintenant sous photoshop les fichiers lettre_point.gif, lettre_apostrophe.gif, lettre_slash.gif... sur le m�me principe.

La m�me fonction donne maintenant pour r�sultat :




 

Il serait maintenant agr�able de pouvoir param�trer l'espacement entre les lettres pour produire diff�rentes mises en page avec la m�me typo ( rappelez-vous comme il est long de faire une planche ). La nouvelle version accepte un param�te de plus : la largeur de l'espacement entre les lettres exprim�e en pixels :

function transformer_en_images($chaine, $espacement_entre_lettre)
{
   $images_retournees="";
   // BOUCLE DE PARCOURS DE LA CHAINE
   for ($i=0;$i<strlen($chaine);$i++)
   {
      $caractere_lu=substr($chaine,$i,1);

      // GESTION DES CARACTERES SPECIAUX
      if ($caractere_lu==".") $caractere_lu="point";
      if ($caractere_lu=="'") $caractere_lu="apostrophe";
      if ($caractere_lu==":") $caractere_lu="deux_points";
      if ($caractere_lu=="/") $caractere_lu="slash";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu==" ") $caractere_lu="espace";

      // VERIFICATION DE LA PRESENCE DU FICHIER
      if (is_file("../lettres/04b25/lettre_$caractere_lu.gif"))
      {
         // LE FICHIER EXISTE
         // AJOUT D'UNE IMAGE A LA SEQUENCE RETOURNEE
         $images_retournees.="<img src=../lettres/04b25/lettre_$caractere_lu.gif>";
         // AJOUT DE L'ESPACE INTER-LETTRE
         $images_retournees.="<img src=../lettres/04b25/spacer.gif width=$espacement_entre_lettre height=1>";
      }
   }
   return ("$images_retournees");
}

Voici le r�sultat en appelant la fonction transformer_en_images($chaine,4) :




 

Remarquez que l'image transparente servant � cr�er les espacements entre lettres a une hauteur de 1 pixel, ce qui cr�e une irr�gularit� dans la zone sensible comme le montre le sch�ma suivant relatif � l'image cr��e dans l'�tape pr�c�dente:



<- zone sensible

Or, si vous d�cidez de mettre un lien sur votre s�quence d'images, seul les lettres seront cliquables et le pixel inf�rieur des espaces. Pour rem�diez � cela, il faudrait pouvoir faire varier la hauteur de l'image transparente simulant les espaces de mani�re � avoir une zone sensible comme celle-ci :



<- nouvelle zone sensible

La nouvelle version g�re ce principe en rajoutant le param�tre "hauteur de lettre". On pourra enfin choisir le nom du r�pertoire dans lequel prendre les images (dans le cas o� vous auriez le courage et le temps de faire plusieurs planches de 70 caract�res) :

function transformer_en_images($chaine, $espacement_entre_lettre,$hauteur_de_lettre,$rep_fonts)
{
   $images_retournees="";
   // BOUCLE DE PARCOURS DE LA CHAINE
   for ($i=0;$i<strlen($chaine);$i++)
   {
      $caractere_lu=substr($chaine,$i,1);

      // GESTION DES CARACTERES SPECIAUX
      if ($caractere_lu==".") $caractere_lu="point";
      if ($caractere_lu=="'") $caractere_lu="apostrophe";
      if ($caractere_lu==":") $caractere_lu="deux_points";
      if ($caractere_lu=="/") $caractere_lu="slash";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu=="�") $caractere_lu="e";
      if ($caractere_lu==" ") $caractere_lu="espace";

      // VERIFICATION DE LA PRESENCE DU FICHIER
      if (is_file("../lettres/$rep_fonts/lettre_$caractere_lu.gif"))
      {
         // LE FICHIER EXISTE
         // AJOUT D'UNE IMAGE A LA SEQUENCE RETOURNEE
         $images_retournees.="<img src=../lettres/$rep_fonts/lettre_$caractere_lu.gif border=0>";
         // AJOUT DE L'ESPACE INTER-LETTRE
         $images_retournees.="<img src=../lettres/$rep_fonts/spacer.gif width=$espacement_entre_lettre height=$hauteur_de_lettre border=0>";
      }
   }
   return ("$images_retournees");
}

Voici le r�sultat en appelant la fonction transformer_en_images($chaine,4,8,"04b25") et sa zone sensible respective :



<- zone sensible

Et avec la fonction transformer_en_images($chaine,1,6,"silkscreen") et sa zone sensible respective :



<- zone sensible

Si vous avez sauv� chacune des images sur un fond transparent et sans bord autour des lettres, vous pouvez d�j� :

  • d'une part utiliser une typo d�finie sur n'importe quelle couleur de fond.
  • d'autre part, choisir un espacement entre lettres compris entre 0 et plusieurs pixels.


  • De quoi r�aliser plusieurs effets sympathiques sans n�cessairement multiplier la quantit� de travail par 10, le plus long �tant de r�aliser les planches.

    piregwan
    5192 visites




     

    queru, 17 10 2001 � 11:21

    "tit...tit... ESSAI ENCORE...tit...tit& quot;.
    Bon, d'accord, je m'y remets.
    C'est en faisant qu'on apprends.
    Merci pour ta r�activit�, Mr. Piregwan.


    queru


    piregwan, 16 10 2001 � 14:46

    l'appel que tu fais � la fonction transformer... n'est pas correct : la fonction ne porte pas le meme nom ou ne contient pas le bon nombre d'arguments.

    a+


    piregwan (agent mad fana...)
    48 ans (chamb�ry, 73)
    krakoukas@piregwan-genesis...
    http://www.piregwan-gen...


    queru, 16 10 2001 � 14:11

    mmmouais ! en local, �a ne marche pas.
    [function transformer_en_image s($chaine) { $images_retournees= ""; // BOUCLE DE PARCOURS DE LA CHAINE for ($i=0;$i Fatal error: Call to undefined function: transformer_en_image s() in c:easyphpwww     e xtes2gif     ext2gif.ph p3 on line 4].
    Cela fait 1 plombe que je cherche sans r�sultat...

    domage, �a m'a l'air bien pratique.

    a+
    a+



    queru


    zamu, 10 10 2001 � 08:27

    Juste une question : on doit te citer si on utilise le script dans un site ?
    Merci beaucoup !


    zamu


    angel2k, 26 06 2001 � 08:47

    Arf .. et dire que moi pour �a j'avais fait x lignes avec des substr() !



    May the Force be with you, Gwan Jedi Master


    angel2k (exil� fanatiqu...)
    42 ans (Amiens)
    angel2k@piregwan.com


    okworld, 25 06 2001 � 21:59

    merci beaucoup beaucoup c coooooooll


    okworld (membre)
    48 ans
    okworld@free.fr
    http://www.gratispace.c...


    ( 12 commentaires )
    << 1 2 3 4 5 6 7 8 9 10 11 12 >>

     











    P I R E G W A N . C O M
    interface & d�veloppement - piregwan 1998-2002




    toutes les banni�res


    g�n�r� en 0.094 secondes