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); ?>
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); ?>
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. 🙂