metin içinde boşluk karakterleri kullanırken imagettfbbox () yanlış boyutlara döndürür

0 Cevap php

PHP dinamik bir grafik menü oluşturma ediyorum, bu gibi görünüyor sadece 1 görüntüde sonuçları:

One    Two    Three    Four

Sorun ancak, ben belirlemek zorunda x-ofset ve css ile görüntüyü konumlandırmak için her sayfa başlığı (örneğin ofset ve sol piksel "One" ve genişliği) genişliği.

Tüm boşluklar içeren sayfa başlıkları dışında, çalışıyor - imagettfbbox () yanlış pozisyonları döndürür. Ben bir Arial yazı tipini kullanıyorum (TTF)

Ben bu soruna almak konusunda herhangi bir öneriniz?

Düzenleme: Ben bu metnin sınırlarını belirlemek için aşağıdaki işlevi kullanarak, şimdi çalışma var:

function calculateTextBox($font_size, $font_angle, $font_file, $text) {
    $box = imagettfbbox($font_size, $font_angle, $font_file, $text);

    $min_x = min(array($box[0], $box[2], $box[4], $box[6]));
    $max_x = max(array($box[0], $box[2], $box[4], $box[6]));
    $min_y = min(array($box[1], $box[3], $box[5], $box[7]));
    $max_y = max(array($box[1], $box[3], $box[5], $box[7]));

    return array(
        'left' => ($min_x >= -1) ? -abs($min_x + 1) : abs($min_x + 2),
        'top' => abs($min_y),
        'width' => $max_x - $min_x,
        'height' => $max_y - $min_y,
        'box' => $box
    );
}

Edit 2: Ne yazık ki farklı font boyutları ve yazı tipi dosyaları kullanırken yanlış boyutlara almaya devam ...

0 Cevap