PHP – Resim üzerine yazı yazma (Watermark) fonksiyonu


Egonomik müdavimlerinden gevv için yaklaşık 3 gün önce halledeceğime söz verdiğim fakat kodların sunucuda kalması ve internetimin 2 gündür kesik olması dolayısıyla bir türlü tamamlayamadığım resim upload/watermark scripti için kullandığım güzel bir fonksiyon (ne cümle kurarım be) Resim upload haricinde fonksiyonun tek başına da gerçekten faydalı olacağına inanıyorum, kısa bir süre sonra bahsettiğim upload scriptini de bu fonksiyonla tümleşik olarak buraya ekleyeceğim (upload edilen resim üzerine yazı yazmak için)

Watermark fonksiyonumuz oldukça basit, kodlar şu şekilde:

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
// Watermark fonksiyonu
function watermarkImage ($SourceFile, $WaterMarkText, $DestinationFile) {
list($width, $height) = getimagesize($SourceFile);
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($SourceFile);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height);

$black = imagecolorallocate($image_p, 0, 0, 0); // Gölge rengi
$renk = imagecolorallocate($image_p, 255, 255, 255); // Yazı rengi

$font = 'fonts/corbelz.ttf'; // Kullanılacak font
$font_size = 14; // Yazı büyüklüğü

imagettftext($image_p, $font_size, 0, 17, 31, $black, $font, $WaterMarkText);
imagettftext($image_p, $font_size, 0, 16, 30, $renk, $font, $WaterMarkText);

if ($DestinationFile<>'') {
  imagejpeg ($image_p, $DestinationFile, 100); }

else {
  header('Content-Type: image/jpeg');
  imagejpeg($image_p, null, 100);   }

   imagedestroy($image);
   imagedestroy($image_p);

} // Fonksiyon sonu

Fonksiyonun kullanımı ise şu şekilde:

1
2
3
4
$SourceFile = "/home/kullanici/public_html/images/$filename"; // Kaynak dosya
$DestinationFile = "/home/kullanici/public_html/images/$filename"; // Yazılacak dosya (kaynak ile aynı olabilir)
$WaterMarkText = "Copyright Egonomik"; // Watermark metni
watermarkImage($SourceFile, $WaterMarkText, $DestinationFile);

Aslında denemedim ama kaynak ve hedef dosyaların yolunu belirtirken “/home/kullanici/public_html/images/” gibi uzun path belirtmek yerine dosya yolunu “images/” şeklinde de gösterebilirsiniz, sanıyorum çalışacaktır.

Corbelz fontunu buradan indirebilirsiniz (272 kb)

İlginizi Çekebilecek Diğer İçerikler

Facebook Yorumları

25 Yorum

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir