Membuat watermark otomatis dengan PHP

Siang sob....
pernah lihat gambar dengan watermark? atau malah pernah membuat watermark di gambarmu sendiri?
biasanya membuat watermark pakai image editor ya? aah bagaimana jika yang ingin kamu ingin menandai watermark sebanyak satu database?
hmm semaleman gak selesai deh pakai photoshop kayaknya..
atau mungkin ingin menandari watermark untuk setiaap gambar yang di upload seperti 1cak, olx dll

gak mungkin kan download gambarnya trus diedit pakai image editor...
yo salah satu solusinya kita bisa pakai GD Library dalam paket PHP, ups bukan pemberi harapan palsu lho yaaaa....
nah kali ini kita akan bahas tentang hal itu

pertama pastikan GD Library di php mu aktif ya, ditandai seperti gambar dibawah
kalau belum aktif mari kita aktifkan ekstensionnya
pertama buka php.ini lokasinya berbeda-beda yaa, dalam kasus ini letaknya di C://Xampp/php/php.ini

lalu Cari dan buka remark dari baris dengan teks berikut "extension=php_gd2.dll".
pastinya lihat gambar dibawah deh

sudah? baiklah kita mulai ke pembuatan scriptnya
buat berkas dengan nama Index.php, yaang isinya sebagi berikut
<?php
    if (! extension_loaded('gd')) { // small check - are GD installed or not
        echo 'GD not installed, please install';
        exit;
    }

    $sOrigImg = "pic1.jpg";
    $sWmImg = "watermark.png";

    $aImgInfo = getimagesize($sOrigImg);
    $aWmImgInfo = getimagesize($sWmImg);
    if (is_array($aImgInfo) && count($aImgInfo)) {
        header ("Content-type: image/png");

        $iSrcWidth = $aImgInfo[0];
        $iSrcHeight = $aImgInfo[1];

        $iFrameSize = 15;

        $rImage = imagecreatetruecolor($iSrcWidth+$iFrameSize*2, $iSrcHeight+$iFrameSize*2); // creating new true color image
        $rSrcImage = imagecreatefromjpeg($sOrigImg); //  creating source image resource

        $aGrid[1] = imagecolorallocate($rImage, 130, 130, 130); // define colors for rectangular frame
        $aGrid[2] = imagecolorallocate($rImage, 150, 150, 150); 
        $aGrid[3] = imagecolorallocate($rImage, 170, 170, 170); 
        $aGrid[4] = imagecolorallocate($rImage, 190, 190, 190); 
        $aGrid[5] = imagecolorallocate($rImage, 210, 210, 210); 
        for ($i=1; $i<=5; $i++) { // our little frame will contain 5 rectangulars to emulate gradient
            imagefilledrectangle($rImage, $i*3, $i*3, ($iSrcWidth+$iFrameSize*2)-$i*3, ($iSrcHeight+$iFrameSize*2)-$i*3, $aGrid[$i]); // drawing filled rectangle
        }

        imagecopy($rImage, $rSrcImage, $iFrameSize, $iFrameSize, 0, 0, $iSrcWidth, $iSrcHeight); // copy image to main resource image

        if (is_array($aWmImgInfo) && count($aWmImgInfo)) {
            $rWmImage = imagecreatefrompng($sWmImg); //  creating watermark image resource
            imagecopy($rImage, $rWmImage, $iSrcWidth-$aWmImgInfo[0], $iFrameSize, 0, 0, $aWmImgInfo[0], $aWmImgInfo[1]); // copy watermark image to main resource image
        }

        $iTextColor = imagecolorallocate($rImage, 255, 255, 255); // defining color for text
        $sIP = $_SERVER['REMOTE_ADDR']; // define guest ip
        imagestring($rImage, 5, $iFrameSize*2, $iFrameSize*2, "Hello guest from {$sIP}, {$sOrigImg} - ({$iSrcWidth} x {$iSrcHeight})", $iTextColor); // draw text

        imagepng($rImage); // output as png image
    } else {
        echo 'wrong image';
        exit;
    }
?>
lalu simpan
copy file gambar untuk watermarknya dengan ekstensi .png ya dan rename jadi watermark.png
berikutnya copy file gambar yang ingin diisi watermark beri nama pic1, simpan dallam 1 folder dengan script php nya
selanjutnya bisa dimodifikasi sesuai kebutuhan, pic1 gambar dll bisa disesuaikan dengan daatabasemu
berikut hasilnya

watermarknya kegedean ya??? hehehe yasudah disesuaikan saja deh
pengen script jadinya saja? silahkan didownload sendiri disini

Subscribe to receive free email updates: