23 Feb

Resim üzerine yazılan yazının saydamlığını ayarlamak

Uzun bir ara oldu, planlarıma göre çok önceden yazacaktım. Burada konuya giriş yapmış ve son olarak da , resim üzerine yazılan yazının saydamlığını nasıl ayarlayacağıma değineceğimi söylemiştim.
Aslına bakarsanız gerçekten çok kolay bir şekilde bunu yapmak mümkün. Böyle bir şeye ihtiyaç duyduğumda, araştırma yaparken çok farklı örnekler ile karşılaştım. Ve bunların çoğu karmaşık yollar ile anlatılmıştı. Hiçbiri isteklerime uymuyordu. Sadece resim üzerine bir yazı yazacaktım ve bu yazının saydamlığını istediğim gibi ayarlayabilmeliydim.
Ve en sonunda çözümü (aslında ilk bakmam gereken yerde) php manualde gördüm.
Önceki örneğimizden devam edelim :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// resmimizi oluşturuyoruz
$resim=imagecreatetruecolor(200,50);
// resmimizi boyayacağımız rengi oluşturuyoruz
$renk = imagecolorallocate($resim, 176,196,222);
// resmimizi boyuyoruz
imagefill($resim, 0,0, $renk);
// yazı rengimizi belirtiyoruz

             //$yaziRengi = imagecolorallocate($resim, 0,0,0);
// eski örneğimizdeki yazı rengi bu biçimdeydi
// sadece bu satırı aşağıdaki gibi değiştirmek bizim için yeterli
$yaziRengi = imagecolorallocatealpha($resim, 0,0,0,100);
/*
 * burada ek olarak gelen 100 parametresi saydam bir renk
 * oluşturmaya yarıyor. Bu değer küçüldükçe saydamlık azalır,
 * bu değer büyüdükçe saydamlık artar. 127 son değerdir ve
 * bu değeri girdiğinizde yazımızı veya her ne için kullanacaksak
 * o nesne tamamen saydam olacaktır
 */

// yazımızı resmin üstüne yazıyoruz
imagestring($resim, 5, 20, 50/3, 'www.ersindogan.com', $yaziRengi);

// tarayıcıya dosyamızı algılaması için direktif veriyoruz
header('Content-type: image/png');
// ve sonucu çıktılıyoruz
imagepng($resim);
imagedestroy($resim);

Evet ,işte bu kadar. Sadece farklı bir fonksiyon kullanıp bir parametre ekleyerek bu işlemi kolaylıkla gerçekleştirebiliriz. Hazır yeri gelmişken, konu ile alakalı bir fonksyiondan daha bahsederek bitireyim.

imagefttext, bu fonksiyon imagestring gibi resim üzerine yazı yazmamızı sağlar. Ama ekstra bir özelliği daha var, o da resim üzerine istediğimiz bir font (FreeType 2 tipinde) ile yazdırabilmesidir.

array imagefttext ( resource $resim , float $boyut , float $açı , int $x , int $y , int $renk , string $yazıtipi , string $metin [, array $ekbilgi ] )

Fonksiyonun aldığı parametre yukarıdaki gibi, burda dikkat etmeniz gereken yazı tipini verirken, fontun yüklü olduğu tam yolu belirtmenizdir. Fontu bulamaz ise resim üzerine yazı yazılmayacaktır.