(PHP 4, PHP 5, PHP 7, PHP 8)
imagettftext — Metni görüntüye TrueType yazı tipi ile yazar
$görüntü
,$boyut
,$açı
,$x
,$y
,$renk
,$yazıtipi
,$metin
,$seçenekler
= []Belirtilen metni belirtilen TrueType yazı tipi ile belirtilen görüntüye yazar.
Bilginize:
PHP 8.0.0 öncesinde imagefttext() işlevi imagettftext() işlevinin geliştirilmişi olup ek olarak
seçenekler
bağımsız değişkenine sahipti. PHP 8.0.0 ve sonrasında imagettftext() işlevi imagefttext() işlevinin takma adıdır.
görüntü
imagecreatetruecolor() gibi bir görüntü oluşturma işlevinden dönen bir GdImage nesnesi.
boyut
Punto cinsinden yazıtipi boyutu.
açı
Derece cinsinden açı. Soldan sağa yazılan bir metnin açısı 0 derecedir. Daha büyük değerler yelkovanın ters yönünde belirtilmiş varsayılır. Örneğin 90 derecelik bir metin aşağıdan yukarı doğru yazılır.
x
x
ve y
ile belirtilen koordinatlar ilk harfin taban noktasını (kabaca harfin sol alt köşesi) tanımlar. Bu tanımlama, koordinatların harfin sol üst köşesini tanımladığı imagestring() işlevinden farklıdır. Resmin sol üst köşesinin koordinatları 0, 0'dır.
y
x
bağımsız değişkenine bakınız.
renk
Renk indisi. Negatif bir renk indisi kenar yumuşatmayı kapatır. imagecolorallocate() işlevine bakınız.
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
UTF-8 kodlanmış metin dizgesi.
Karakter numarası 127'den büyük karakterler için onluk karakter numarası (€ şeklinde) belirtilebilir. Onaltılık gösterim de (© şeklinde) desteklenmektedir. UTF-8 kodlu metinler doğrudan aktarılabilir.
© gibi isimli öğeler desteklenmemektedir. Bu tür isimli öğeleri UTF-8 dizgelerde kullanmak için html_entity_decode() işlevi ile dönüştürebilirsiniz.
Eğer yazı tipi tarafından desteklenmeyen bir karakter belirtirseniz karakterin yerinde boş bir dikdörtgen görürsünüz.
Hata durumunda false
yoksa metin çerçevesinin dört köşesinin koordinatlarını içeren 8 elemanlı bir dizi döner. Çerçevenin köşeleri dizide sırayla şunlardır: sol alt, sağ alt, sağ üst, sol üst. 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 - imagettftext() örneği
Bu örnek betik, içinde Arial yazı tipi ile siyah renkte (gri gölgeli) "Testing..." yazılmış 400x30 piksellik beyaz bir PNG görüntü üretecektir.
<?php
// İçerik türünü belirt
header('Content-Type: image/png');
// Görüntüyü boş olarak oluştur
$resim = imagecreatetruecolor(400, 30);
// Renkleri tanımla
$beyaz = imagecolorallocate($resim, 255, 255, 255);
$gri = imagecolorallocate($resim, 128, 128, 128);
$siyah = imagecolorallocate($resim, 0, 0, 0);
imagefilledrectangle($resim, 0, 0, 399, 29, $beyaz);
// Metni tanımla
$metin = 'Testing...';
// Buraya kendi dosya yolunuzu yaz
$font = 'arial.ttf';
// Metne gölge ver
imagettftext($resim, 20, 0, 11, 21, $gri, $font, $metin);
// Metni ekle
imagettftext($resim, 20, 0, 10, 20, $siyah, $font, $metin);
// imagejpeg()'ye göre daha temiz sonuç veren imagepng()'yi kullan
imagepng($resim);
imagedestroy($resim);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Bilginize: Bu işlev sadece, PHP, freetype desteği (--with-freetype-dir=DİZİN seçeneği) ile derlenmişse kullanılabilir.