2009-07-15 7 views
0

Voici la classe que j'ai jusqu'à présent:J'essaie de comprendre comment écrire une classe qui affiche gd une chaîne dans tout type de police

<?php 

class txt2img { 
    var $image; 
    var $headertype; 
    var $forecolor; 
    var $fontsize; 
    var $fontangle; 
    var $font; 
    var $string; 

    //font size 
    function fontsize($fontsize) { 
     return $this->fontsize; 
    } 

    //forecolor 
    function forecolor($forecolor) { 
     return this->imagecolorallocate($this->img(),$this->forecolor); 
    } 

    //image file 
    function img($image) { 
     return imagecreatefrompng($this->img); 
    } 

    function display($string,$font) { 
     //display all errors 
     ini_set("display_errors", "1"); 
     error_reporting(E_ALL); 

     header('content-type: image/png'); 
     $fcolor = $this->forecolor(); 

     imagettftext($this->img(),$this->fontsize(),0,0,$this->forecolor(),$this->font,$this->string); 

     imagejpg($this->img()); 
     imagedestroy($this->img()); 
    } 
} 

?> 

Quelqu'un a une idée? Soit il est tard ou je ne sais pas, pour une raison quelconque je me sens vide en écrivant celui-ci.

Je veux être capable d'écrire les attributs d'abord comme

$gd = new gd; 
$gd->fontsize('12'); 
//..etc 

alors la sortie réelle serait écrit comme ceci

$gd->display('this is my string','myfont.ttf'); 

Répondre

0

Je pense que cette ligne n'est pas bon

imagettftext($this->img(),$this->fontsize(),0,0,$this->forecolor(),$this->font,$this->string); 

car vous définissez des zéros avec $ this-> fontsize() et etc.

il shuld être

imagettftext($this->imgage,$this->fontsize,0,0,$this->forecolor,$this->font,$this->string) 

Je ce que cela aide :)

+0

merci mais pensez-vous que ce serait possible une fois que j'aurais cette chose de travail? comme dire si j'ai quelques onglets et pour chaque onglet exécuter la fonction de la classe et la sortie d'une chaîne de police personnalisée? – SarmenHB

+0

Oui, pourquoi pas? Chaque onglet est une nouvelle session pour le serveur web, donc une nouvelle copie de votre 'truc'. Et si vous voulez avoir beaucoup d'img vous devriez init cette classe avec un nouveau nom $ one = new txt2img(); $ two = new txt2img() De cette façon, vous obtenez différents objets. – lfx

0
  1. obtenir un IDE avec coloration syntaxique
  2. En savoir PHP5 POO Principes de base
  3. Lire les messages d'erreur

Vous avez un mélange sauvage de $this->img, $this->image, $this->img() et $image là ...

Questions connexes