Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1506 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP-GD] Transformer un fichier texte en image ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP-GD] Transformer un fichier texte en image ...

n°535761
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 00:33:22  profilanswer
 

Bonjour à tous,
 
Qqn sait il comment faire pour transformer un fichier texte en image grace à PHP en utilisant une police bitmap ?
 
c'est pour faire un script qui afficherait correctement du ASCii Art...
 
Merci par avance
 
++

mood
Publicité
Posté le 10-10-2003 à 00:33:22  profilanswer
 

n°535766
Hermes le ​Messager
Breton Quiétiste
Posté le 10-10-2003 à 01:03:27  profilanswer
 

Exemple d'une fonction que j'ai récemment faite :
 
http://forum.hardware.fr/forum2.ph [...] h=&subcat=

n°535809
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 09:00:49  profilanswer
 

Merci pour ton aide... C'est deja un debut :)
 
Bon, au lieu de tourner autour du pot je vais vous montrer ce que je voudrais faire :
 
http://www.vcdquality.com/nfo.php?id=20326
 
Merci de ne pas faire attention à la nature du site...
 
Comme vous le voyez, le NFO affiché est une image ... mais elle est crée à partir d'un fichier .NFO en texte... De plus il s'agit là d'une police OEM/DOS, qui affiche les carré noir, grisés, les lignes etc...
 
Voila donc ce que j'aimerais pour voir faire pour affichre correctement les AsciiArt :)
 
Merci

n°535815
jagstang
Pa Capona ಠ_ಠ
Posté le 10-10-2003 à 09:14:12  profilanswer
 

et ça ?  
 
C'est pas du vrai ASCII Art parce que c'est toujours le même texte mais c'est déjà pas mal:
 
c'est Rossi si jamais....

Code :
  1. <html>
  2. <body bgcolor="black">
  3. <form enctype="multipart/form-data" action="index.php?m=u" method="post">
  4.       <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
  5.       Transfère le fichier <input type="file" name="monfichier" />
  6.   Résolution <input type="text" name="resolution" value="150" />
  7.   Texte <input type="text" name="txt" value="01" />
  8.        <input type="submit"/>
  9. </form>
  10. <?
  11.   // default
  12.   $file = "default.jpg";
  13.   $text = "01" ;
  14.   $resol = 100; 
  15.   if ($m == "u" )
  16.     {
  17.  $repertoireDestination = "" ;
  18.      $nomDestination        = $_FILES["monfichier"]["name"];
  19.     // Pour raison de sécurité nous ajouterons aux fichiers
  20.     // portant une extension .php .php3, l'extension .txt
  21.     if (eregi(".php", $nomDestination)) {
  22.         $nomDestination .= ".txt";
  23.     }
  24.    
  25.     if (is_uploaded_file($_FILES["monfichier"]["tmp_name"]))
  26.   {
  27.         if (rename($_FILES["monfichier"]["tmp_name"],
  28.                    $repertoireDestination.$nomDestination))
  29.      
  30.   {
  31.             echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
  32.                  " a été déplacé vers ".$repertoireDestination.$nomDestination;
  33.         }
  34.   else
  35.   {
  36.             echo "Le déplacement du fichier temporaire a échoué".
  37.                  " vérifiez l'existence du répertoire ".$repertoireDestination;
  38.      }         
  39.     }
  40.  else
  41.        echo "Le fichier n'a pas été uploadé (trop gros ?)";
  42.   
  43.   
  44. $file = $repertoireDestination.$nomDestination ;
  45. $resol = $resolution ;
  46. $text = $txt ;
  47. }
  48.   $image = imageCreateFromJPEG($file);
  49.   $size = getimagesize($file);
  50.   $width = $size[0] ;
  51.   $height = $size[1] ;
  52.   $resol = 100;
  53.  
  54.   $xgrid = ceil($width/$resol);
  55.   $ygrid = $xgrid*1.8;
  56.  
  57.   $x = $xgrid;
  58.   $y = $ygrid;
  59.  
  60.   while ($y<$height)
  61.   {
  62.      while ($x<$width)
  63.      {
  64.         $colorindex = imagecolorat($image,$x,$y);
  65.         $rgb = imagecolorsforindex($image,$colorindex);
  66.      
  67.         $color = dechex(($rgb[red]<<16)|($rgb[green]<<8)|$rgb[blue]);
  68.        
  69.         $letter = substr($text,$pos,1); 
  70.         $pos++;
  71.         if ($pos >= strlen($text)) { $pos = 0; }
  72.      
  73.         if ($color != $oldcolor && $letter != " " ) { echo "</span><span style=\"color:#$color;\">$letter"; }
  74.         else { echo $letter; }
  75.      
  76.         $oldcolor = $color;
  77.      
  78.         $x += $xgrid;
  79.      }
  80.      echo "\r\n<br />\r\n";
  81.      $x = $xgrid;
  82.      $y += $ygrid;
  83. }
  84. unlink($repertoireDestination.$nomDestination) ;
  85. ?>
  86. </body>
  87. </html>


 
PS : le code a été posté il y a quelques temps par un gars du forum. CopyLeft


Message édité par jagstang le 19-01-2008 à 10:51:50

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°535816
Hermes le ​Messager
Breton Quiétiste
Posté le 10-10-2003 à 09:14:23  profilanswer
 

Ben en manipulant ma fonction et en la modifiant un peu pour gérer les saut de lignes, tu peux y arriver sans problème. De plus, ce genre de police a toutes les lettres de la même largeur ce qui fait que c'est bcp plus simple que dans le cas de ma fonction où il a fallu que je récupère une à une la largeur de chaque caractère au fur et et à mesure de la lecture.

n°535860
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 10:21:08  profilanswer
 

Oui mais la police TERMINAL est une police speciale ... aucune autre police a ma connaissance permet d'afficher des carré, des smiley ou encore des "cadres" ...
 
Voici 2 exemples... les 2 sont avec une police à chasse fixe.
 
FIXEDSYS :
http://donkeyxchange.com/txt1.bmp
 
TERMINAL :
http://donkeyxchange.com/txt2.bmp
 
Je voudrais afficher, sur une page web, le 2eme exemple...
 
++


Message édité par Dj YeLL le 10-10-2003 à 10:21:22
n°535930
Profil sup​primé
Posté le 10-10-2003 à 11:17:06  answer
 

ce superbe script fait plutot l'inverse de ce que tu souhaite mais quelle beauté : http://www.sebastian-r.de/asciiart/

n°535933
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 11:20:52  profilanswer
 

:lol:

n°535951
Hermes le ​Messager
Breton Quiétiste
Posté le 10-10-2003 à 11:35:41  profilanswer
 

Dj YeLL a écrit :

Oui mais la police TERMINAL est une police speciale ... aucune autre police a ma connaissance permet d'afficher des carré, des smiley ou encore des "cadres" ...
 
Voici 2 exemples... les 2 sont avec une police à chasse fixe.
 
FIXEDSYS :
http://donkeyxchange.com/txt1.bmp
 
TERMINAL :
http://donkeyxchange.com/txt2.bmp
 
Je voudrais afficher, sur une page web, le 2eme exemple...
 
++


 
Je ne vois pas le problème. Tu charges cette police avec mon script remanié pour les sauts de ligne, et normalemant, ça doit être bon non ?

n°535955
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 11:37:23  profilanswer
 

Ben le pb est que la police TERMINAL est une police Bitmap et non TrueType ... et qu'il me semble que GD ne gere que les polices TrueType non ?

mood
Publicité
Posté le 10-10-2003 à 11:37:23  profilanswer
 

n°535958
Hermes le ​Messager
Breton Quiétiste
Posté le 10-10-2003 à 11:38:03  profilanswer
 

Pas grave, tu utilises fontographer pour la convertir en true type et le tour est joué.

n°535961
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 11:40:40  profilanswer
 

Ahhhh !! Merci bcp ! Je vais tester ça alors :)
 
Merci pour tout
 
++

n°535975
Hermes le ​Messager
Breton Quiétiste
Posté le 10-10-2003 à 11:53:46  profilanswer
 

Dj YeLL a écrit :

Ahhhh !! Merci bcp ! Je vais tester ça alors :)
 
Merci pour tout
 
++


 
De rien, mais je crois qu'il y a encore plus simple :
 
http://dev.nexen.net/scripts/details.php?scripts=859

n°536014
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 12:23:48  profilanswer
 

Ben en fait apres 2 jours de recherche intensive, je viens ENFIN de trouver une police TTF qui est exactement la meme que la police TERMINAL de windows :) Le mec l'a refaite entierement, je viens de tester elle est exactement pareille ...
 
Il me reste plus qu'a adapter un peu ton script, merci bcp !
 
++

n°536763
Dj YeLL
$question = $to_be || !$to_be;
Posté le 10-10-2003 à 23:27:37  profilanswer
 

Arg ! Ya rien a faire, j'y arrive pas ...
 
Il faudrait que le script me créé l'image a partir d'un fichier .txt ... donc qu'il lise toutes les lignes et qu'il en fasse 1 seule image, avec les retour a la ligne au bon endroit etc...
 
Je sais pas faire :(

n°536845
Hermes le ​Messager
Breton Quiétiste
Posté le 11-10-2003 à 01:36:51  profilanswer
 

C'est pas dur poutant.
 
Il faut analyser les \n pour connaitre les retours à la ligne...

n°537111
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2003 à 16:37:25  profilanswer
 

Oui mais avec GD, il faut que l'image soit créée AVANT d'y mettre le texte... Le pb est qu'il faudrait connaitre la largeur de la + large des lignes... De plus comment lire à l'interieur d'un fichier ? Je sais faire pas mal de chose ne php, mais je n'ai encore jamais utilisé le maniement des fichier, et que tres tres peu la librairie GD... donc si qqn pouvait m'aider, ou me donner un lien qui explique correctement comment manipuler les fichier et la lib GD ca serait super :)
 
Désolé de vous embeter avec ça...
 
Merci  
 
++


Message édité par Dj YeLL le 11-10-2003 à 17:03:44
n°537119
Dj YeLL
$question = $to_be || !$to_be;
Posté le 11-10-2003 à 17:04:40  profilanswer
 

Bon ben finallement ya un pb :(
 

Citation :

Fatal error: Call to undefined function: imagettfbbox() in ...


 
Ouin ! Pourtant GD est bien activé chez mon hebergeur :/


Message édité par Dj YeLL le 11-10-2003 à 17:04:52

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP-GD] Transformer un fichier texte en image ...

 

Sujets relatifs
[HTML] Table et Background image qui s'affiche pasFormat d un fichier AVI
pb upload fichier[VB] Controle image rond?
[PHP-GD] Actualiser une image générée en GD,modification resolution image
[PHP] Changer couleur écriture /ligne && Mise à jour date (p.2)Hébergement PHP / ASP sur la même bécane / "nom de domaine"
[PHP] Les sessions avec cookies - (script de PHPScript) 
Plus de sujets relatifs à : [PHP-GD] Transformer un fichier texte en image ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR