Ошибка создания образа GD - PullRequest
0 голосов
/ 16 июня 2009

Я использую GD для генерации изображений на лету для титульных изображений на странице. На данный момент создано более 100 изображений, подавляющее большинство из которых работают отлично.

Недавно мы обнаружили, что некоторые заголовки нарушают создание изображения, когда между двумя символами вставлено большое горизонтальное пространство.

Шрифт, используемый для генерации изображения, является межгосударственным, и ниже приведены некоторые примеры работы заголовков, а также пример сломанного. В случае сломанного названия это были символы "JB" рядом друг с другом, которые сломали это. Перемещение символов вокруг или наличие любого количества символов между ними приводит к правильному созданию изображения.

Как видно из примеров, заголовки работают как с короткими, так и с длинными частями текста, это всего лишь один пример, который до сих пор ломает его, действительно начинает меня смущать и подозревать ошибку в файле шрифта или в GD, какие-либо предложения?

альтернативный текст http://far.id.au/jkf/so/jb.png альтернативный текст http://far.id.au/jkf/so/bj.png альтернативный текст http://far.id.au/jkf/so/cheesecake.png альтернативный текст http://far.id.au/jkf/so/blah.png

Код:

private function GenerateImage()
{
    $height = 31;
    $width = $this->Width;

    $x = 10;
    $y = 20;

    $font_size = 10;

    $text_colours = $this->ToRGB($this->TextColour);
    $background_colours = $this->ToRGB($this->BackgroundColour);

    $image = imagecreatetruecolor($width,$height);

    $fg_color = imagecolorallocate($image,$text_colours[0],$text_colours[1],$text_colours[2]);
    $bg_color = imagecolorallocate($image,$background_colours[0],$background_colours[1],$background_colours[2]);

    imagefill($image,0,0,$bg_color);

    imagettftext($image,$font_size,0,$x,$y,$fg_color,$this->Font,strtoupper($this->Title));

    return imagepng($image,$this->FilePath,9);
}

1 Ответ

0 голосов
/ 15 сентября 2010

Виноват был испорченный шрифт

...