2009-07-15 3 views
0

Hier angezeigt werden, ist die Klasse die ich bisher habe:Ich versuche, herauszufinden, wie eine gd Klasse zu schreiben, die eine Zeichenfolge in jeder Schriftart

<?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()); 
    } 
} 

?> 

jemand eine Idee? Entweder ist es spät oder ich weiß es nicht, aus irgendeinem Grund fühle ich mich leer, wenn ich dieses schreibe.

Ich möchte zunächst die Attribute schreiben können, wie

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

dann die tatsächliche Ausgabe wie diese

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

Antwort

0

geschrieben würde ich diese Linie denken ist nicht gut

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

, weil Sie Nullen mit $ this-> fontsize() und usw. setzen

es shuld

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

ich das dies hilft sein :)

+0

danke, aber denkst du, es wäre möglich, sobald ich dieses Ding funktioniert? Wie gesagt, wenn ich ein paar Registerkarten habe und für jede Registerkarte die Funktion von der Klasse ausführen und eine benutzerdefinierte Schriftart ausgeben? – SarmenHB

+0

Ja, warum nicht? Jede Registerkarte ist eine neue Sitzung für den Web-Server, also eine neue Kopie Ihres "Zeug". Und wenn Sie viele Img's haben wollen, sollten Sie diese Klasse mit einem neuen Namen initiieren $ one = new txt2img(); $ two2 = new txt2img() Auf diese Weise erhalten Sie verschiedene Objekte. – lfx

0
  1. eine IDE mit Syntaxhighlighting
  2. Erfahren
  3. Lesen Sie die Fehlermeldungen PHP5 OOP Basics
  4. Get

Sie haben eine wilde Mischung von $this->img, $this->image, $this->img() und $image dort ...