PHP kullanarak görüntüye dinamik bir filigran ekleyin. PHP Çapraz filigran php ile filigran oluşturma

Bazı durumlarda, sitenizde yayınladığınız resimlere filigran eklemek, onları bir şekilde hırsızlıktan korumanın tek yoludur. Ayrıca, bu tür filigranların ek trafik çektiği de söyleniyor.

Bir görüntüyü filigranla işaretlemenin birçok yolu vardır. PHP kullanarak, ancak müvekkilimin filigranı herhangi bir zamanda yenisiyle değiştirmeye izin verecek bir uygulama yöntemine ihtiyacı vardı.

Anlaşıldığı üzere, böyle bir çözüm var.

Bu genellikle, çoğunlukla grafik içerikli siteler geliştiren kişiler tarafından kullanılır.

Filigranlama Yöntemi Seçme

Tüm bu karmaşanın uygulanmasındaki sorun, performans ve esneklik arasında bir damgalama yöntemi seçmektir. Herkese uyacak mükemmel çözüm basitçe mevcut değil. Bu yüzden birçok uygulama var.

Benim durumumda, müşteri herhangi bir zamanda ve bunun yerine yeniden markalama hakkını saklı tutar. "Boynuzlar ve toynaklar" yazmak "Toynaklar ve Boynuzlar"... Seçilen damgalama yöntemi buna da dayanmalıdır.

Burada açıklanan filigran teknolojisinin özü, her görüntü yüklendiğinde bu işareti eklemektir. Evet, bu yöntem, performansı önemli ölçüde etkileyebilecek bir takım sınırlamalar taşır, ancak dedikleri gibi, müşteri her zaman haklıdır ve bu nedenle, eğer öyleyse. görev dinamik olarak bir filigran uygulamanızı gerektiriyor, o zaman yapmanız gereken tam olarak bu.

Herhangi birinin daha kolay bir yolu varsa, yorumlara hoş geldiniz. Dinlemek ilginç olacak.

Herhangi bir kod getirmeden önce, faydalarını açıklamak ve çalışan bir örnek vermek istiyorum.

Artıları:

  • filigranı günde en az 500 kez değiştirebilirsiniz;
  • herhangi bir CMS'ye dağıtılabilir (herhangi bir şekilde ona bağlı değildir).

eksileri:

  • barındırma performansına bağlıdır (çok sayıda resminiz varsa veya yüksek çözünürlüklüyse, bu sunucuya önemli bir yük getirebilir);
  • sorgulayan bir zihin hala filigranınızı kaldırabilir.

Sonuçlar: filigran uygulanmış az sayıda resim yerleştirmek için bu yöntem mükemmeldir, ancak bir fotoğraf galerisi açacaksanız, daha az yüklü bir şey aramak daha doğru olacaktır.

Örnek

PHP ile filigran uygulama

Söz verildiği gibi, bunun için herhangi bir özel bilgiye sahip olmanıza gerek yok, yapmanız gerekenler:

  1. arşivdeki dosya ve sitenizin kök dizinine yerleştirin;
  2. filigran görevi görecek olan resim sitenin kök dizinine yerleştirilir ve adını verir (benim durumumda, bu beyaz bir fırça darbesidir, bu nedenle bağlantıdan sonra tarayıcınızın arka planından ayırt edilemeyebilir). Saydam bir katman içerdiğinden görüntü tam olarak PNG olmalıdır. GIF kullanmak istiyorsanız, dosyayı düzenlemeniz gerekir. resim.php;
  3. görüntüyü filigranla görüntülemek istediğiniz yere kodu yerleştirin:

Bu kadar. Herkes mutlu, hem siz hem de müşteri.

Bir fotoğrafa grafik düzenleyicilerle uğraşmadan filigran eklemek veya sunucuya fotoğraf yüklerken eklemek istiyorsanız bu eğitim tam size göre.

Bu derste, orijinal görüntüyü değiştirmeden anında bir görüntüye nasıl filigran ekleneceğini göstereceğim. Her şeyden önce, filigranınız olarak kullanmak için bir resme ihtiyacınız olacak.

Sonra dosya başlığını oluştururuz:

// bu satır tarayıcıya jpg resim başlığını geçtiğimizi söyleyecektir ("içerik türü: resim / jpeg");

Sonra oluştururuz png resmi ve boyutlarını alıyoruz:

// bir png filigranı oluşturun $ filigran = imagecreatefrompng ("filigran.png"); // genişlik ve yüksekliği al $ watermark_width = imagesx ($ filigran); $ filigran_yükseklik = görüntüler ($ filigran);

Aynısını orijinal görüntü ile yapacağız, ancak yalnızca jpg biçimi... Bu, bir form aracılığıyla yüklenen fotoğraflar için yaygındır. Aşağıdaki gibi hareket ediyoruz:

// bir jpg görüntüsü oluştur $ image_path = "orijinal.jpg"; $ image = imagecreatefromjpeg ($ image_path); // resmin boyutunu al $ size = getimagesize ($ image_path);

Şimdi görüntünün üzerine bir filigran yerleştirmemiz gerekiyor:

// filigranı sağ alt köşeye yerleştirin. Girinti 5px $ dest_x = $ size - $filigran_width - 5; $ hedef_y = $ boyut - $ filigran_yükseklik - 5;

Ardından, her iki görüntü için de karıştırma seçeneklerini ayarlayacağız:

İmajalfablling ($ resim, doğru); imagealphablending ($ filigran, true);

Son olarak, parametreleri kullanarak yeni bir görüntü oluşturuyoruz:

// yeni bir resim görüntüsü oluştur ($ resim, $ filigran, $ hedef_x, $ hedef_y, 0, 0, $ filigran_genişliği, $ filigran_yüksekliği); imagejpeg ($ resim);

Kendinizden sonra temizlemek önemlidir:

// hafızayı boşalt imajdestroy ($ imaj); imagedestroy ($ filigran);

Filigranın saydamlığını ayarlamak için Photoshop'u kullanabilirsiniz.

Teori ile bu kadar. Şimdi bilgimizi gerçek bir projede uygulayacağız. Bütün bunlar bir dosyaya kaydedilmelidir. Örneğin, filigran.php olarak adlandırılır

Başlık ("içerik türü: resim / jpeg"); // resmin adını GET ile alın $ image = $ _GET ["image"]; // bir filigran oluştur $ filigran = imagecreatefrompng ("filigran.png"); // filigranın yüksekliğini ve genişliğini al $ watermark_width = imagesx ($ filigran); $ filigran_yükseklik = görüntüler ($ filigran); // orijinal görüntüden jpg oluştur $ image_path = "/ path / to / image / folder /". $ görüntü; $ image = imagecreatefromjpeg ($ image_path); // eğer bir şeyler ters giderse if ($ image === false) (yanlış döndür;) $ size = getimagesize ($ image_path); // resmin üzerine bir filigran yerleştirin $ dest_x = $ size - $ watermark_width - 5; $ hedef_y = $ boyut - $ filigran_yükseklik - 5; imagealphablending ($ image, true); imagealphableending ($ filigran, true); // yeni bir görüntü görüntüsü oluştur ($ görüntü, $ filigran, $ hedef_x, $ hedef_y, 0, 0, $ filigran_genişliği, $ filigran_yüksekliği); imagejpeg ($ resim); // hafızayı boşalt imajdestroy ($ imaj); imagedestroy ($ filigran);

Şimdi, orijinal görüntüyü değiştirmeden filigranlı bir fotoğrafı göstermek için aşağıdaki kodu kullanın.

PHP GD grafik kitaplığı ile yapabileceğiniz ilginç şeylerden biri, bir görüntüye filigran koyan bir sınıftır. Kısaca, filigran, dijital görüntüleri, onlara filigran veya imza uygulayarak yetkisiz kullanımdan korumak için kullanılan bir teknolojidir. Sonuç olarak, bir görüntünün telif hakkının sahibini belirlemek için kullanılabilir (ve genellikle öyledir). Öyleyse daha ileri gidelim.

Tanıtım

Gelişiminin bu aşamasında PHP, programcılara dinamik olarak görüntü oluşturmak ve onlarla çalışmak için çok çeşitli işlevler sunar. Bu makalede, bu görüntüleri filigranlayacak bir sınıf oluşturma tekniğini göstereceğim. Bu sınıf iki görüntü ile çalışacaktır: orijinal ve filigran. Ek olarak, üçüncü bir parametre eklendi - sınıfımız bir alfa değişkeni içerecek. Bu, filigranımız için bir alfa kanalı kullanmamıza izin verecektir.

Referans için

alfa kanalı: renk kanalları görüntünün rengi hakkında bilgi depolarken, görüntünün tek tek alanlarının şeffaflığı hakkında bilgi depolayan görüntünün parçası. V grafik editörleri görüntünün belirli bir alanını maskelemek (düzenlemeye karşı korumak) için kullanılır. Bazı uygulamalarda şeffaf maskeler olarak adlandırılırlar.

Alfa kanalındaki bilgiler çoğunlukla seçili alanları temsil eder - renkli alanların bir şekli veya düzeni. Alfa kanalını görüntüde tutmak dosya boyutunu 1/3 oranında artırır. RGB görüntülerde 24'e kadar alfa kanalı olabilir. Bitmap ve dizine alınmış görüntüler alfa kanalları içeremez.

Birinci bölüm - temel bilgiler

Sınıfın kendisini yazmaya başlamadan önce, sınıf içinde kullanılacak fonksiyonlara bakalım. İşte bunların bir listesi:

# görüntünün genişliğini ve yüksekliğini döndürür imagesx () imagesy () # yeni bir görüntü oluşturur true-color imagecreatetruecolor # için karşılık gelen değerleri içeren kırmızı, yeşil ve mavi (+ alfa kanalı) tuşlarına sahip bir ilişkisel dizi döndürür belirtilen renk indeksi imagecolorsforindex () # resimde belirtilen konumdaki pikselin renk indeksini döndürür imagecolorat () # belirtilen renkli resim kümesi pikselinden tek bir piksel çizer () # resmin paletindeki rengin indeks renk indeksini döndürür, renk tanımlayıcısı (RGB bileşenlerinden oluşur) ve buna göre RGB değerine "en yakın" olan görüntü paletinin renk indeksi (bu veri imagesetpixel () işlevi için gereklidir) imagecolorexact () imagecolorallocate () imagecolorclosest ()

Gördüğünüz gibi, php'nin grafiklerle çalışmak için yeterli işlevi var. Bazılarının amacı teoride tamamen açık olmasa da, pratikte her şey çok daha basittir. Bu nedenle, onlarla nasıl çalışacağımızı anlamak için bunları sınıfımızda uygulayacağız.

Hedefe giden yolu seçmek

Artık "mini projemizin" amacına karar verdiğimize göre, biraz geriye gidelim ve onu uygulama yollarından bahsedelim.

İlk olarak, uygulamamız iki görüntü alır - orijinal görüntü ve filigranın kendisi. Daha sonra bu görüntülerin boyutlarını (genişlik-genişlik ve yükseklik-yükseklik) belirlememiz gerekiyor. Filigranı görüntünün merkezine yerleştirmek için bu verilere ihtiyacımız var (filigranın boyutunun görüntünün kendisinden daha küçük olacağı varsayımıyla).

Ardından, filigranımızı orijinal görüntünün üzerine bindirmemiz gerekecek. Bunu yapmak için, üçüncüyü elde etmek için bindirme görüntülerinin renklerini (matematiksel olarak) eklememiz gerekiyor.

Ve sonunda, ortaya çıkan görüntüyü tarayıcıda göstermemiz gerekecek. Bu durumda, resim doğrudan " bölümünde belirtilen kaynaktan açılacaktır. "

Teorinin zaten yeterli olduğunu düşünüyorum - içindeki kilit noktalar yeterince ayrıntılı olarak açıklanıyor. Şimdi doğrudan senaryoyu yazmaya geçelim.

İkinci bölüm - bir senaryo yazmak

En basit şeyle başlayalım - filigranlı bir dosya oluşturan bir sınıf yazın. Buna "filigran" diyelim ve kodunu "api.watermark.php" dosyasına yazalım. Sınıfın "iskeleti" üç işlev olacaktır:

Bir sonraki adım, "filigran" sınıfının işlevleri için kod yazmaktır. "api.watermark.php" dosyasını aşağıdaki kod satırlarıyla tamamlayın:

# iki kaynak görüntüyü tek bir işlevde birleştiren bir işlev create_watermark ($ main_img_obj, $ watermark_img_obj, $ alpha_level = 100) (# alfa kanalı şeffaflık değerini %'den onlarcaya çevir $ alpha_level / = 100; # görüntü boyutlarını hesaplayın (genişlik ve yükseklik) ) $ main_img_obj_w = imagesx ($ main_img_obj); $ main_img_obj_h = imagesy ($ main_img_obj); $ watermark_img_obj_w = imagesx ($ watermark_img_obj); $ filigran_img_obj_h = imagesy_obim su işareti_ / 2) ana_wim_g_g koordinatları $ -img__g_g); tavan (($ main_img_obj_w / 2) + ($ filigran_img_obj_w / 2)); $ main_img_obj_min_y = taban (($ main_img_obj_h / filigran ); $ main_img_obj_max_y = tavan (($ main_img_obj_h_im_im_ 2); yeni bir resim oluşturma $ return_img = imagecreatetruecolor ($ main_img_obj_w, $ main_img_obj_h); # kaynak resimden geçerek " filigranlı resim dönüş $ return_img; ) # create_watermark işlevinin sonu ()

Şimdi create_watermark() fonksiyonuna daha yakından bakalım.

İlk olarak, ona üç parametre iletiyoruz:

# filigran eklenecek orijinal görüntü $ main_img_obj # filigranın kendisi bir alfa kanalı içermelidir $ watermark_img_obj # filigranın alfa kanalının şeffaflık değeri, (0-100, varsayılan = 100) $ alpha_level

(İşlevimizin, görüntüleri yalnızca onlara giden yollar olarak değil, nesneler olarak kabul ettiğini unutmamak önemlidir - daha sonra bu konuda daha fazlası)

Sonraki adım, orijinal görüntüyle aynı boyutlara sahip yeni, gerçek renkli bir görüntü oluşturmaktır. Bu görüntü (değişken $ return_img), orijinal görüntülerden (görüntü ve filigran) bilgileri birleştirmek için kullanılacaktır.

Ancak bundan önce, iki orijinal görüntünün her birinde "yürümeniz" ve bunları tek bir resimde "birleştirmeniz" gerekir. Ancak bunu yapmak için henüz çok erken - henüz buna hazır değiliz. Bunun yerine, bir "bir kod" yorumu göndeririz ve ardından o yere bir kod parçası ekleriz.

Sonu, değiştirilmiş resmimizi isteyen web sayfasında görüntülemek olacaktır. Ardından, kalan iki yardımcı işlevi göz önünde bulundurun.

Üçüncü bölüm - yardımcı işlevler

create_watermark işlevine ek olarak, filigran sınıfımızda iki işlev daha vardır. Sınıfın kaynak koduna aşağıdaki satırlarla devam edelim:

# alfa saydamlık işlevine dayalı olarak iki rengin ortalaması alınır _get_ave_color ($ color_a, $ color_b, $ alpha_level) (dönüş turu ((($ color_a * (1- $ alpha_level)) + ($ color_b * $ alpha_level)));) # dönüş yeni görüntü işlevinin en yakın RGB bileşenlerinin değerleri _get_image_color ($ im, $ r, $ g, $ b) ($ c = imagecolorexact ($ im, $ r, $ g, $ b); if ($ c! = - 1) $ c döndürür; $ c = imagecolorallocate ($ im, $ r, $ g, $ b); if ($ c! = - 1) döndürür $ c; imagecolorclosest döndürür ($ im, $r, $g, $b);)

Ve şimdi daha fazla ayrıntı için. İlk fonksiyonumuz "_get_ave_color" iki renk ve bir alfa kanalı için sayısal değerler alır. Ortalama değerlerini döndürür. İki görüntünün pikselleri üst üste bindirildiğinde elde edilecek rengi belirlemek için bu fonksiyona ihtiyacımız var.

İkinci işlev "_get_image_color", görüntüyü kırmızı, yeşil ve mavi bileşenlere (rgb paleti) böler. Yerleşik ile php işlevleri grafiklerle çalışmak için (makalenin başında açıklanmıştır), yeni görüntü için en yakın renk değerini alıyoruz.

Ayrıca, birkaç nokta hala doğrulanmaktadır. İlk olarak, tam değeri ($ c değişkeni) elde etmek mümkün olsaydı, fonksiyondan döndürülür (dönüş $ c). Aksi takdirde, imagecolorallocate () işlevi kullanılarak rengi eşleştirmeye çalışılır. Bu sonucun elde edilmesine yardımcı olmazsa, imagecolorclosest () işlevi kullanılarak en yakın renk değeri (en yanlış) basitçe döndürülür.

Neyse, sınıfımız neredeyse hazır. Yalnızca "create_watermark" işlevindeki "bazı kodlar" yorumunu aşağıdaki satırlarla değiştirmek için kalır:

# ($ y = 0; $ y) için görüntüde gezinin< $main_img_obj_h; $y++) { for ($x = 0; $x < $main_img_obj_w; $x++) { $return_color = NULL; # определение истинного расположения пикселя в пределах # нашего водяного знака $watermark_x = $x - $main_img_obj_min_x; $watermark_y = $y - $main_img_obj_min_y; # выбор информации о цвете для наших изображений $main_rgb = imagecolorsforindex($main_img_obj, imagecolorat($main_img_obj, $x, $y)); # если наш пиксель водяного знака непрозрачный if ($watermark_x >= 0 && $ filigran_x< $watermark_img_obj_w && $watermark_y >= 0 && $ filigran_y< $watermark_img_obj_h) { $watermark_rbg = imagecolorsforindex($watermark_img_obj, imagecolorat($watermark_img_obj, $watermark_x, $watermark_y)); # использование значения прозрачности альфа-канала $watermark_alpha = round(((127-$watermark_rbg["alpha"])/127),2); $watermark_alpha = $watermark_alpha * $alpha_level; # расчет цвета в месте наложения картинок $avg_red = $this->_get_ave_color ($ main_rgb ["kırmızı"], $ filigran_rbg ["kırmızı"], $ filigran_alpha); $ avg_green = $ this -> _ get_ave_color ($ main_rgb ["green"], $ watermark_rbg ["green"], $ watermark_alpha); $ avg_blue = $ this -> _ get_ave_color ($ main_rgb ["mavi"], $ watermark_rbg ["mavi"], $filigran_alpha); # alınan verileri kullanarak, renk indeksini hesaplayın $ return_color = $ this -> _ get_image_color ($ return_img, $ avg_red, $ avg_green, $ avg_blue); # eğer bir renk seçemiyorsanız, o zaman sadece # orijinal pikselin bir kopyasını alın) başka ($ return_color = imagecolorat ($ main_img_obj, $ x, $ y);) # ortaya çıkan piksellerden yeni bir resim çiz imagesetpixel ( $ dönüş_img, $ x, $ y, $ dönüş_renk); ))

Kodun bu kadar önemli bir bölümünü yazdıktan sonra, analizini daha ayrıntılı olarak duraklatabilir ve üzerinde durabilirsiniz.

İlk olarak, betiğimiz görüntüyü iki for döngüsü kullanarak geçer. Paralel olarak, filigranın her pikselinin koordinatları hala hesaplanır.

Sonraki adım, her piksel için RGB bilgilerini aramaktır. Geçerli piksel, orijinal görüntünün ve filigranın kesiştiği alanda yer almıyorsa, sınıfımız yalnızca yeni görüntü için pikseli çoğaltır. Piksel kesişim alanında bulunuyorsa, orijinal görüntü ile filigranın örtüşmesi sonucu rengini belirlememiz gerekir.

Kesişme alanının rengini belirlemek için öncelikle "for" döngülerinde aldığımız bilgileri kullanarak filigranın RGB değişkeninin değerini almamız gerekiyor. Ardından "_get_ave_color" işlevi kullanılarak yeni görüntü için ortalama renk değeri belirlenir. Ardından, "return_img" işlevi tarafından kullanılacak renk şemasını tanımlamak için "_get_image_color" işlevi gelir.

Sonuç olarak, "for" döngülerinin tamamlanmasından sonra, filigranlı bitmiş bir görüntümüz var.

Şimdi sınıfımızı çalışırken kontrol edelim.

Dördüncü bölüm - test sürüşü

Öncelikle iki dosyaya ihtiyacımız var. İlkine "watermark_test.php" adını verelim ve içine aşağıdaki kodu koyalım:



Bu dosyanın amacı çok basittir: tarayıcıda orijinal (main.jpg) ve alınan (filigranlı filigran.png) görüntüyü görüntüler.

Gördüğünüz gibi, ikinci resmimiz (watermark.png) resim dosyasına değil, image.php php dosyasına atıfta bulunuyor. Bu bağlantı, iki değişkenin değerlerinin php dosyasına iletildiği bir GET isteğine benziyor: $ ana ve $ filigran.

İkinci dosyaya "image.php" adını verelim ve içine aşağıdaki kodu yerleştirelim:

create_watermark ($ main_img_obj, $ watermark_img_obj, 66); # ortaya çıkan resmimizi tarayıcıda görüntüleyin - # ama önce bunun bir jpeg dosya başlığı olduğunu bildirin ("Content-Type: image / jpeg"); başlık ("Content-Disposition: satır içi; dosya adı =". $ _GET ["src"]); imagejpeg ($ return_img_obj, "", 50); ?>

Neyse finale geldik. (ZIP, 47.6Kb)

Site sahipleri (forumlar, mesaj panoları vb.) genellikle tüm büyük site resimlerinde filigran oluşturma sorunuyla karşı karşıyadır.

Elbette bu sorun, her görüntü üzerinde manuel olarak bir filigran oluşturarak çözülebilir, ancak ilk olarak, çok zaman alır ve ikinci olarak, görüntünün filigranlı ve filigransız iki versiyonunu saklamak gerekli hale gelir.

Bu sorunun çözümü, site ziyaretçisine aktarmadan önce görüntünün üzerine dinamik olarak bir filigran yerleştirilmesi olabilir.

İnternette bu sorunun, içerikleri aşağıda verilen iki dosya şeklinde bir çözümü bulunmaktadır.
Kaynak".htaccess" dosyası

DirectoryIndex index.php RewriteEngine On RewriteCond% (REQUEST_FILENAME) -f RewriteRule ^ (. *) $ /Filigran/_watermark.php

"_watermark.php" dosyasının kaynak kodu

250) && ($ info_o> 250)) (// Alfa kanalı olmayan görüntüler için // Fonksiyonun son parametresi filigranın opaklığıdır imageCopyMerge ($out, $filigran, ($ info_o- $ info_w) / 2 , ($ info_o - $ info_w) / 2, 0, 0, $ info_w, $ info_w, 25); // Alfa kanalı olan görüntüler için // Bu durumda şeffaflık görüntünün kendisinin alfa kanalı tarafından kontrol edilir // imageCopy ($ out, $filigran, ($ info_o- $ info_w) / 2, ($ info_o- $ info_w) / 2, 0, 0, $ info_w, $ info_w);) anahtarı ($ info_o) (durum 1 : imageGIF ($ out); break; durum 2: imageJPEG ($ out); break; durum 3: imagePNG ($ out); break; varsayılan: false döndür;) imageDestroy ($ out); imageDestroy ($ orijinal); imageDestroy ($ filigran); true döndür; )?>

Çözüm şu şekildedir, ".htaccess" dosyası resim dosyalarının bulunduğu dizine yerleştirilir. Buna ek olarak, sunucuda "_watermark.php" komut dosyası ve gerçek filigran dosyası "watermark.png" içeren bir "filigran" klasörü oluşturulur.

Aynı zamanda internette tanıştığım orijinal versiyona kıyasla her iki metin dosyasında da küçük değişiklikler yaptım.

htaccess dosyası, Düzenli ifade resim dosyası araması da yaygın olan "jpeg" uzantısını ekledi.

"_watermark.php" betiği, görüntünün ortasına bir filigran yerleştirecek şekilde yeniden tasarlandı (bu, çözülmekte olan sorunun özellikleri için gerekliydi) ve oluşturulan filigranın şeffaflığını ayarlama yeteneği eklendi (yorumlar betiğin gövdesi bu parametreyi kendiniz ayarlamanıza yardımcı olacaktır).

Orijinal kaynakların önerdiği gibi, "filigran" klasörünü görüntülerin bulunduğu klasöre yerleştirerek istenen sonucu elde edemeyeceğimize de dikkat etmelisiniz. bu durumda her klasörde kendi ".htaccess" dosyamız ve "filigran" klasörümüz olması gerekecek. Bunun nedeni, ".htaccess" dosyasının site kök dizininden "_watermark.php" dosyasına giden mutlak yolları belirtmesidir. Bu nedenle, görüntülerin bulunduğu her klasörde ayrı bir "filigran" alt klasörüne sahip olmak, filigranı (veya onu görüntüye empoze eden komut dosyasını) değiştirmek gerekirse, tüm klasörlerde değişiklik yapmak zorunda kalacağız.

Bu sorunu önlemek için sitenin kök dizininde bir "filigran" klasörü oluşturmanızı ve her seferinde değiştirmeye gerek kalmadan ".htaccess" dosyasını resim dizinlerine koymanızı öneririm. Bu durumda filigranı veya betiği değiştirmek için sitede sadece bir yerde değişiklik yapmamız gerekecek. Bu durumda, farklı ".htaccess" dosyalarından farklı betiklere başvurarak, örneğin "_watermark-1.php", "_watermark-2.php" vb. gibi resimlerle farklı klasörler için farklı filigranlar oluşturabilirsiniz.

Bu nedenle özetlemek gerekirse, sitenin tüm resimlerine filigran uygulamak için aşağıdaki ekteki arşivi indirmeniz, paketinden çıkarmanız, sitenin kök dizinine "filigran" klasörünü yerleştirmeniz, "filigran" ı değiştirmeniz gerektiğini söyleyebiliriz. png" filigran dosyasını kendi dosyanızla birlikte içine yerleştirin ve ".htaccess" dosyasını, görüntüleri filigranla işaretlenmesi gereken site dizinlerine yerleştirin.

Gerekli tüm dosyaları içeren bir arşivi buradan indirebilirsiniz.