imagettfbbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imagettfbboxTrueType yazıtipi kullanılan bir metnin çerçevesini döndürür

Açıklama

imagettfbbox(
    float $boyut,
    float $açı,
    string $yazıtipi,
    string $metin,
    array $seçenekler = []
): array|false

Bir TrueType metin için yazıyı çevreleyen kutunun sınırlarını piksel cinsinden hesaplar ve sonucu bir dizi içinde döndürür.

Bilginize:

PHP 8.0.0 öncesinde imageftbbox() işlevi imagettfbbox() işlevinin geliştirilmişi olup ek olarak seçenekler bağımsız değişkenine sahipti. PHP 8.0.0 ve sonrasında imagettfbbox() işlevi imageftbbox() işlevinin takma adıdır.

Bağımsız Değişkenler

boyut

Punto cinsinden yazıtipi boyutu.

açı

Belirtilen metnin yazım açısı.

ytdosyası

TrueType yazı tipinin dosya yolu.

PHP'nin kullandığı GD kütüphanesi sürümüne bağlı olarak, ytdosyası bir / ile başlamıyorsa dosya adına .ttf uzantısı eklenir ve kütüphane bu dosyayı kütüphanede tanımlı bir dosya yolunda bulmaya çalışır.

2.0.18'den küçük sürümlü GD kütüphanesi kulllanılıyorsa farklı yazı tipi dosyalarının yolları arasında noktalı virgül yerine boşluk karakteri kullanılır. Bu özelliğin boşluk karakterleri içeren dosya yollarında kullanımı bir uyarı iletisiyle sonuçlanır: Warning: Could not find/open font. Bundan etkilenen sürümler için tek çözüm yazı tipi dosyasını boşluklar içermeyen bir dosya yoluna taşımaktır.

Bir yazı tipinin, kullanıldığı komut dosyasıyla aynı dizinde bulunduğu durumlarda, aşağıdaki çözüm bu sorunu ortadan kaldıracaktır.

<?php
// GD için ortam değişkeni
putenv('GDFONTPATH=' . realpath('.'));

// Yazı tipinin ismi (.ttf uzantısının olmayışına dikkat)
$ytdosyası = 'biryt';
?>

Bilginize:

open_basedir ytdosyasına uygulanmaz.

metin

Çerçevesi hesaplanacak metin.

Dönen Değerler

Bir hata durumunda false yoksa metin çerçevesinin dört köşesinin koordinatlarını içeren 8 elemanlı bir dizi döner:

anahtar içeriği
0 Sol alt köşenin X konumu
1 Sol alt köşenin Y konumu
2 Sağ alt köşenin X konumu
3 Sağ alt köşenin Y konumu
4 Sağ üst köşenin X konumu
5 Sağ üst köşenin Y konumu
6 Sol üst köşenin X konumu
7 Sol üst köşenin Y konumu

Noktalar açıdan bağımsız olarak metne görelidir. Yani, "sol üst" denince metne yatay olarak bakarkenki sol üst köşe kastedilmektedir.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 seçenekler bağımsız değişkeni eklendi.

Örnekler

Örnek 1 - imagettfbbox() örneği

<?php
// 300x150'lik bir görüntü oluştur
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Artalan rengi beyaz olsun
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Bu yazı tipi dosyası olsun
$font = './arial.ttf';

// İlk metnin çerçevesini oluştur
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());

// Bunlar X ve Y koordinatları olsun
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Metni yaz
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());

// Şimdi ikinci metnin çerçevesini oluştur
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());

// Bu metin ilkinin altında olsun
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Metni yaz
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());

// Tarayıcıya çıktıla
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notlar

Bilginize: Bu işlev sadece, PHP, freetype desteği (--with-freetype-dir=DİZİN seçeneği) ile derlenmişse kullanılabilir.

Ayrıca Bakınız

  • imagettftext() - Metni görüntüye TrueType yazı tipi ile yazar
  • imageftbbox() - Bir FreeType2 yazı tipi ile yazılacak bir metnin çerçevesini hesaplar