Я пытаюсь выяснить, как написать класс GD, который будет отображать строку в любом типе шрифта - PullRequest
0 голосов
/ 15 июля 2009

Вот класс, который у меня пока есть:

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

?>

У кого-нибудь есть идеи? Либо уже поздно, либо я не знаю, по какой-то причине я чувствую себя опустошенным при написании этого.

Я хочу иметь возможность сначала написать атрибуты, например

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

тогда фактический вывод будет записан так:

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

Ответы [ 2 ]

0 голосов
/ 15 июля 2009
  1. Получить IDE с помощью SyntaxHighlighting
  2. Изучение основ PHP5 ООП
  3. Прочитать сообщения об ошибках

У вас есть дикая смесь $this->img, $this->image, $this->img() и $image там ...

0 голосов
/ 15 июля 2009

Я думаю, что эта строка не хороша

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

потому что вы устанавливаете нули с $ this-> fontsize () и т. Д.

должно быть

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

Мне это помогает:)

...