0

GD を使用して、ページのタイトル画像の画像をオンザフライで生成しています。現時点で 100 を超える画像が生成されており、その大部分はうまく機能しています。

最近、特定のタイトルで、2 つの文字の間に大きな横方向のスペースが挿入されると、画像の作成が中断されることがわかりました。

画像生成に使用されているフォントは Interstate です。以下は、機能しているタイトルの例と、壊れているものの例です。壊れたタイトルの場合、それを壊したのは互いに近くにある文字「JB」でした. 文字を反転させたり、間に任意の数の文字を入れたりすると、画像が正しく生成されます。

例からわかるように、タイトルはテキストの短い部分と長い部分の両方で機能しますが、これまでのところそれを壊しているのはその1つの例だけであり、本当に混乱し始め、フォントファイルまたは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);
}
4

1 に答える 1

0

破損したフォントが原因でした

于 2010-09-15T06:33:29.453 に答える