imagettftext
(PHP 4, PHP 5, PHP 7, PHP 8)
imagettftext — Metni görüntüye TrueType yazı tipi ile yazar
Açıklama
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.
Bağımsız Değişkenler
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.
Dönen Değerler
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.
Örnekler
Ö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:
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
- imagettfbbox() - TrueType yazıtipi kullanılan bir metnin çerçevesini döndürür
- imagefttext() - Bir metni bir görüntüye bir FreeType 2 yazı tipini kullanarak yazar