• 29-07-2010, 10:15:14
    #1
    Kaynak : http://www.trkodlama.com/forum/



    PHP ile sitenizdeki resimlerinize watermark tekniğini uygulayabilirsiniz.
    Bugünkü makalemde PHP ve HTACCESS yardımı ile web sitenizdeki resimlerinize nasıl watermark yani resimlerin üzerine kendi logonuzu nasıl ekleyebileceğinizden bahsediyorum.
    Öncelikle dört adet dosyaya ihtiyacımız olacak. Bunlar:

    * watermark.php
    * .htaccess
    * logo.png
    * resim001.jpg

    Bunları kendiniz tedarik edin. Yani watermark.php ve .htaccess isimli iki dosya oluşturun. Daha sonra arkaplanı transparan ve opacity'si %60-%70 civarında olan bir PNG logo oluşturun kendinize. En sonra olarak da elinizdeki JPG resimlerden birini alın. Bunların hepsini bir klasöre atın.
    Şimdi gelelim dosyalarımızın içeriklerine..

    watermark.php:

        <?php
        $dizin = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
    
        // İstenilen resmi alalım
        $resim = imagecreatefromstring(file_get_contents($dizin));
    
        $w = imagesx($resim);
        $h = imagesy($resim);
    
        // Watermark'ı yükleyelim.. Logo.png'yi değiştirin...
        $watermark = imagecreatefrompng('logo.png');
        $ww = imagesx($watermark);
        $wh = imagesy($watermark);
    .htaccess:
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} -f
        RewriteRule .(gif|jpeg|jpg|png)$ watermark.php [QSA,NC]
    Bu dosyalarınızın bulunduğu klasördeki bütün resimlerde artık logo.png diye belirttiğiniz dosya bulunacaktır.
    Ekstra Özellikler:

    * Sistemde varsayılan olarak JPG Quality yani JPG kalitesi %75'dir. Bunu arttırmak için imagejpeg($resim); satırını imagejpeg($resim, null, %100); şeklinde değiştirin. %100 kısmını kendinize göre düzenleyin.
    * Eğer watermark logonun üzerine eklediğiniz resmi ortalamasını istiyorsanız aşağıdaki satırı

        imagecopy($resim, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh);
    bununla değiştirin:

        imagecopy($resim, $watermark, (($w/2)-($ww/2)), (($h/2)-($wh/2)), 0, 0, $ww, $wh);
    Umarım faydalı olur.
    Kolay gelsin,
  • 29-07-2010, 12:23:29
    #2
    keşke reklamı bu bölümde yapmasaydın. paylaşım için teşekkürler
  • 29-07-2010, 12:26:05
    #3
    bunun yerine Ücretsiz PHP Dersleri için : http://www.trkodlama.com/forum/
    şöyle yapsaydın
    kaynak
  • 29-07-2010, 12:40:06
    #4
    Üyeliği durduruldu
    Öncelikle arkadaşlara katılıyorum. Sonrasında kodlara gelmek istiyorum, htaccess ile yaptığınız ayarlara bakılırsa tüm resimler için bu dosya çağırılacak, tüm resimlere işlem yapmak için güzel bir olay olabilir ama her resim çağrıldığında phpnin bunu işlemesi saçma değil mi ?

    Bir şey daha eklemek istiyorum, bu kodları test ettiniz mi ? çalışacak gibi durmuyor da.
  • 29-07-2010, 13:19:25
    #5
    D3LLy adlı üyeden alıntı: mesajı görüntüle
    Öncelikle arkadaşlara katılıyorum. Sonrasında kodlara gelmek istiyorum, htaccess ile yaptığınız ayarlara bakılırsa tüm resimler için bu dosya çağırılacak, tüm resimlere işlem yapmak için güzel bir olay olabilir ama her resim çağrıldığında phpnin bunu işlemesi saçma değil mi ?

    Bir şey daha eklemek istiyorum, bu kodları test ettiniz mi ? çalışacak gibi durmuyor da.
    Gayet iyi bir şekilde çalışıyor. Burada bir referans var çalıştığına dahil. O arkadaş yapmışda.
    http://www.edremithavaalani.com/gale...php?ID=22&sr=0

    O resimlerin bulunduğu her klasörde dediğiniz gibi PHP çalışıyor olacak ama diğer türlüde resmi çekmek için watermark.php?src=resimadi.jpg yaptığınız anda kişi bu resmi arayıp bulabilir ve bu da istenmeyen bir durum açıkcası.. Bu nedenle o şekilde sıralanmış
  • 29-07-2010, 14:50:21
    #6
    Makalemin burada paylaşıldığını görmek beni heyecanlandırdı açıkcası.. watermark.php dosyası bütün resimleri çekiyor çünkü diğer türlü Gündüz Yürüyen'in dediği gibi resimleri kişi kaydettiği zaman watermark logosuz haline erişebilirdi. Bu yöntemle kişilerin bu imkanlarını sınırlandırdık... Ama dediğiniz gibi çok fazla bir yüklenmede olabilir..
  • 29-07-2010, 16:24:41
    #7
    Üyeliği durduruldu
    watermark.php dosyasında imagecopy() fonksiyonu kullanılmamış ki. kodlar yarım yamalak olmuş hocam
  • 29-07-2010, 18:30:56
    #8
    Hocam makaleyi buraya ekleyen arkadaş kopyalayamamış... Kaynak