(PHP 4, PHP 5, PHP 7)
imagettftext — Metni resme TrueType yazı tipi ile yazar
$resim
, float $boyut
, float $açı
, int $x
, int $y
, int $renk
, string $yazıtipi
, string $metin
)Belirtilen metni belirtilen TrueType yazı tipi ile belirtilen resme yazar.
resim
imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.
boyut
Yazıtipi yüksekliği. Kullandığınız GD sürümüne bağlı olarak piksel (GD1) veya punto (GD2) olarak belirtilmelidir.
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
değiştirgesine bakınız.
renk
Renk indisi. Negatif bir renk indisi kenar yumuşatmayı kapatır. imagecolorallocate() işlevine bakınız.
yazıtipi
Kullanılacak TrueType yazıtipinin dosya yolu.
PHP'nin kullandığı GD kütüphanesi sürümüne bağlı olarak, / ile başlamayan bir dosya ismine .ttf uzantısı eklenir ve kütüphane bu dosya ismini kütüphanede tanımlı dizinlerde arar.
GD kütüphanesinin 2.0.18'den küçük sürümlerini kullanıyorsanız, farklı yazıtipi dosyalarının aralarına noktalı virgül değil boşluk karakteri koymalısınız. Bu kurala dikkat etmezseniz şöyle bir uyarı alırsınız: Warning: Could not find/open font (Uyarı: Yazı tipi bulunamadı veya açılamadı). Boşluk içeren dosya yollarının varlığında bu sürümler için tek çözüm yazı tiplerinin boşluk içermeyen dosya yollarına taşınmasıdır.
Yazı tiplerinin betikle aynı dizinde bulunduğu durumlarda herhangi bir sorun çıkmaması için aşağıdaki çözüm kullanılabilir.
<?php
// GD ortam değişkenini tanımlayalım
putenv('GDFONTPATH=' . realpath('.'));
// Kullanılacak yaza tipinin ismi (dikkat: .ttf uzantısı yok)
$font = 'freesans';
?>
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 PHP 5.0.0'dan itibaren 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 |
---|---|
5.2.0 |
metin içinde onaltılık öğeler belirtmek mümkün oldu.
|
Ö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 resmi üretecektir.
<?php
// İçerik türünü belirtelim
header('Content-type: image/png');
// Resmi boş olarak oluşturalım
$resim = imagecreatetruecolor(400, 30);
// Renkleri tanımlayalım
$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ımlayalım
$metin = 'Testing...';
// Buraya kendi dosya yolunuzu yazın
$font = 'arial.ttf';
// Metne gölge verelim
imagettftext($resim, 20, 0, 11, 21, $gri, $font, $metin);
// Metni ekleyelim
imagettftext($resim, 20, 0, 10, 20, $siyah, $font, $metin);
// imagejpeg()'ye göre daha temiz sonuç veren imagepng()'yi kullanalım
imagepng($resim);
imagedestroy($resim);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Bilginize:
Bu işlev hem GD kütüphanesini hem de » FreeType kütüphanesini gerektirir.