PHP

Php’de filigran nasıl yapılır?

Arkadaşlar bu yazıda Php’de filigran yapılmasından söz edeceğiz. GD kütüphanesi  ile bu işlemi gerçekleştireceğiz. Şimdi detaylı olarak inceleyelim.

PHP ile filigran yapımı çok basittir. GD fonksiyonunu kullanarak, metin veya görüntüyü bir hedef katman / belgeye filigran olarak kullanabiliriz.

PHP / GD Metin Filigranlama

Metin filigran işlevleri,

  • imagestring()Görüntülere metin dizesi ekler
  • imagettftext() True Type Fontları kullanarak resimlere metin ekleme

Söz dizimleri (Syntax) şu şekildedir.

imagestring($image, $font, $x, $y, $filigranMetin, $filigranRenk);

imagettftext($image, $fontSize, $filigranAcısı, $x, $y, $filigranRenk, $fontDosyayolu, $filigranMetin);

 

imagestring() fonksiyonu daha fazla marifet yapılmadan basit olarak filigran eklemek için yeterlidir. Açılı metinlerde filigran efekt eklerken imagettftext () fonksiyonunu kullanıyoruz. Bu fonksiyon zengin bir efekt imkanı sunar.

Diğer yazı tiplerinde serbest tür ve post script türü kullanarak görüntülere metin filigranı eklemek için daha fazla GD fonksiyonu vardır. Örnek olarak imagefttext(), imagepstext() verebiliriz.

Bir örnek ile inceleyelim.

<?php

$imageURL = "/home/hakan/PhpstormProjects/proje/images/istanbul.jpg";   // images/istanbul.jpg

list($width,$height) = getimagesize($imageURL);
$imageProperties = imagecreatetruecolor($width, $height);
$targetLayer = imagecreatefromjpeg($imageURL);

imagecopyresampled($imageProperties, $targetLayer, 0, 0, 0, 0, $width, $height, $width, $height);
$WaterMarkText = 'W E B M A T E R . K I T C H E N';
$watermarkColor = imagecolorallocate($imageProperties, 250,235,215);

imagestring($imageProperties, 4, 130, 117, $WaterMarkText, $watermarkColor);

header('Content-type: image/jpg');
imagepng ($imageProperties);
imagedestroy($targetLayer);
imagedestroy($imageProperties);

?>

resim1
istanbul

PHP / GD Görüntü Damgalama

PHP’de, imagecopy () işlevini kullanarak başka bir görüntü katmanına filigran olarak bir resim ekleme işlemi yapılabilmekteyiz.

imagecopy($hedefGörüntü, $srcResim, $hedefX, $hedefY, $kaynakX, $kaynakY, $kaynakGenisligi, $kaynakYüksekligi);

Bu fonksiyon hedef görüntü piksellerinin üzerine yazarak kaynak görüntüyü hedef görüntü üzerine kopyalar.

Kaynağı hedefe kopyalayıp birleştirme işlemine benzer başka bir GD fonksiyonu imagecopymerge () ‘dir.

imagecopymerge($hedefGörüntü, $srcResim, $hedefX, $hedefY, $kaynakX, $kaynakY, $kaynakGenisligi, $kaynakYüksekligi, $oran);

Imagecopymerge () fonksiyonu fazladan bir parametre olan $oran adlı değişkene sahiptir. 0-100 arasında bir değer olup, iki resim bu şeffaflık oranına göre karıştırılır. 0 değeri için hiçbir ek işlem yapılmaz. 100 için ise, gerçek renkli resimlere alfa şeffaflatması uygulanırken paletli resimlere imagecopy() işlevindeki yaklaşım uygulanır.

PNG resimlerini filigran gibi şeffaf zeminle birleştirildiğinde, imagecopymerge() fonksiyonu  varılacak yerin üzerinde şeffaflığı koruyamayacaktır. Dolayısıyla, resim filigranı için imagecopy () tercih edilir.

Bir örnek ile inceleyelim.

<?php


$watermark = imagecreatefrompng('images/webmaster.png');

$imageURL = imagecreatefrompng('images/istanbul.png');

$watermarkX = imagesx($watermark);
$watermarkY = imagesy($watermark);

imagecopy($imageURL, $watermark, imagesx($imageURL)/5, imagesy($imageURL)/5, 0, 0, $watermarkX, $watermarkY);

header('Content-type: image/png');
imagepng($imageURL);
imagedestroy($imageURL);


?>

tasarli

metin

Arkadaşlar bu yazıda Php’de filigran yapımını ele aldık. Örneklerden de gördüğünüz gibi basit olarak filigran yapımının nasıl kodlandığını görmüş olduk. Sizde keyfinizin istediği gibi kendi filigranınızı oluşturabilirsiniz.

Değerli yorumlarınızı bekliyorum. Esen kalın. 🙂



Yazar hakkında

Hakan Karataş

Back-End Developer @Webmaster.Kitchen.

Ağırlıklı olarak Back-end tarafında bilgi, birikim ve yeni öğrendiğim bilgiler ile mutfakta yer almaktayım. Görüş, düşünce ve tecrübelerinizi bizlerle paylaşabilirsiniz. Yorum alanı ile mutfağa katkıda bulunun.

Yorumlar

Bir yorum yaz