imagettftext

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

imagettftextMetni görüntüye TrueType yazı tipi ile yazar

Açıklama

imagettftext(
    GdImage$görüntü,
    float$boyut,
    float$açı,
    int$x,
    int$y,
    int$renk,
    string$yazıtipi,
    string$metin,
    array$seçenekler = []
): array|false

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.

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_basedirytdosyasına uygulanmaz.

metin

UTF-8 kodlanmış metin dizgesi.

Karakter numarası 127'den büyük karakterler için onluk karakter numarası (&#8364; şeklinde) belirtilebilir. Onaltılık gösterim de (&#xA9; şeklinde) desteklenmektedir. UTF-8 kodlu metinler doğrudan aktarılabilir.

&copy; 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.

Sürüm Bilgisi

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

Ö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:

Örnek çıktısı: imagettftext()

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
To Top