(PHP 4, PHP 5, PHP 7, PHP 8)
imagettfbbox — TrueType yazıtipi kullanılan bir metnin çerçevesini döndürür
$boyut
,$açı
,$yazıtipi
,$metin
,$seçenekler
= []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.
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.
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: | Açıklama |
---|---|
8.0.0 |
seçenekler bağımsız değişkeni eklendi.
|
Ö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);
?>
Bilginize: Bu işlev sadece, PHP, freetype desteği (--with-freetype-dir=DİZİN seçeneği) ile derlenmişse kullanılabilir.