Tutorial Belajar Pemrograman, membuat game, membuat aplikasi, membuat program, android, game maker, yii, php, CSS, HTML, java, javascript, codeigniter, jquery, Pascal, c++

Tuesday, December 31, 2013

Cara Membuat Watermark Gambar / Image Sederhana Dengan PHP

Cara Membuat Watermark Gambar / Image Sederhana Dengan PHP - Watermark atau tanda air adalah gambar, simbol atau text yang di letakan di dalam gambar untuk menandai keaslian atau hak cipta gambar. Kenapa harus di watemark ? sebagai contoh dalam satu kasus kita membuat sebuah gambar atau foto jepretan kita sendiri kemudian kita sebarluaskan, suatu ketika ada yang mengambil dan mengkuinya sebagai hasil karyanya nah kan repot tuh, kita sudah susah - susah membuatnya dia malah mengaku - ngaku buatannya. nah, dengan watermark ini kita bisa menandai gambar tersebut dengan nama kita atau simbol khusus kita.

Sebenarnya sekarang sudah banyak software untuk watermark bertebaran di internet, baik yang offline ataupun yang online. untuk kali ini kita akan membuat tools watermark kita sendiri menggunakan script PHP, untuk lebih jelasnya langsung saja kita ke prakteknya.

Baca juga : Membuat Program Untuk Mencari Nilai X ,Y ,Z dan Determinan Dengan PHP

A. Persiapan Peralatan Perang

Pertama - tama sebelum kita memulai menuliskan script kita siapkan telebih dahulu kita harus mempersiapkan beberapa peralatan yang di butuhkan :

1. Anda harus sudah mempunyai localhost

2. Siapkan sebuah gambar sebagai watermark gambar, siapkan gambar dengan tipe PNG agar hasil lebih bagus.

3. Siapkan sebuah jenis font kemudian simpan di tempat yang sama bersama project anda, anda dapat mengunduhnya di : dafont.com

B. Penulisan Script

Sebelum memulai menulis script buatlah sebuah folder terlebih dahulu di dalam folder project anda dengan nama upload folder inilah yang akan digunakan untuk menampung gambar hasil watermark kita nanti.

1. Buatlah sebuah file php dengan nama index.php dengan isi script :

<?php 

//---- KONFIGURASI WATERMARK 
$text_show  = "Jin Toples"; // text watermark
$image_show = "logo4.png";   // gambar watermark
$font_path  = "Computerfont.TTF"; // jenis font
$font_size  = 24;       // ukuran font contoh 24 = 24px  
$path = "uploads/";   // folder upload gambar setelah proses watermark
$x = 100; //kordinat posisi x text
$y = 280; //kordinat posisi y text
$msg="";
if(isset($_GET['mode'])){
 $image_path = ($_GET['mode']=="img")? $image_show : $text_show; 
}else{
 $image_path = '';
}

function watermark_image($oldimage_name, $new_image_name){
    global $image_path;
    list($owidth,$oheight) = getimagesize($oldimage_name);
    $width = $height = 300;    // tentukan ukuran gambar akhir, contoh: 300 x 300
    $im = imagecreatetruecolor($width, $height);
    $img_src = imagecreatefromjpeg($oldimage_name);
    imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
    $watermark = imagecreatefrompng($image_path);
    list($w_width, $w_height) = getimagesize($image_path);        
    $pos_x = $width - $w_width; 
    $pos_y = $height - $w_height;
    imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height);
    imagejpeg($im, $new_image_name, 100); 
    imagedestroy($im);
    unlink($oldimage_name);
    return true;
}

function watermark_text($oldimage_name, $new_image_name){
    global $font_path, $font_size, $text_show;
    list($owidth,$oheight) = getimagesize($oldimage_name);
    $width = $height = 300;  // tentukan ukuran gambar akhir, contoh: 300 x 300  
    $image = imagecreatetruecolor($width, $height);
    $image_src = imagecreatefromjpeg($oldimage_name);
    imagecopyresampled($image, $image_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight); 
// tentukan warna teks dalam RGB (255,255,255)
 $blue   = imagecolorallocate($image, 79, 166, 185);  
// efek teks shadow
 $shadow = imagecolorallocate($image, 178, 178, 178); 
//posisi text pada gambar
imagettftext($image, $font_size, 0, $x, $y, $blue, $font_path, $text_show); 
imagejpeg($image, $new_image_name, 100); 
    imagedestroy($image);
    unlink($oldimage_name);
    return true;
}

$demo_image = "";
if(isset($_POST['createmark']) and $_POST['createmark'] == "Submit"){
    $valid_formats = array("jpg","bmp","jpeg");
 $name = $_FILES['imgfile']['name'];
 if(strlen($name))
{
 list($txt, $ext) = explode(".", $name); 
 if(in_array($ext,$valid_formats)&& $_FILES['imgfile']['size'] <= 1024*1024){ 
// 1024*1024 = 1 MB limit upload image
  $upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']);
   if($upload_status){
    $new_name = $path.time().".jpg";
    if(isset($_GET['mode'])){
     if(watermark_image($path.$_FILES['imgfile']['name'], $new_name)) $demo_image = $new_name;
    } else { 
     if(watermark_text($path.$_FILES['imgfile']['name'], $new_name)) $demo_image = $new_name;    
    }
   }
  }
 } else { $msg="File size Max 1 M or Invalid file format supports .jpg and .bmp";   }
}
?>

Anda dapat mengatur konfigurasi watermark anda pada script di atas pada baris berikut :

$text_show  = "Jin Toples"; // text watermark
$image_show = "logo4.png";   // gambar watermark
$font_path  = "Computerfont.TTF"; // jenis font
$font_size  = 24;       // ukuran font contoh 24 = 24px  
$path = "uploads/";   // folder upload gambar setelah proses watermark
$x = 100;
$y = 280;

2. Kemudian di bawah script di atas tambahkan script HTML sebagai tampilan untuk mengupload dan hasil watermark :

<html>
    <head>
        <title>PHP Text Watermark</title>
        <style type="text/css">
            body{ width:800px; margin: 15px auto; padding:0px; font-family: arial}                
        </style>
    </head>
    <body>
    <h1><?php 
   // navigasi Text / Image Watermark
   if(!isset($_GET['mode'])){
    echo "Text WaterMark | <a href='".$_SERVER['PHP_SELF']."?mode=img'>Image WaterMark</a>";
   }else{
    echo "<a href='".$_SERVER['PHP_SELF']."'>Text WaterMark</a> | Image WaterMark";
   }
  ?>
 </h1>
        <form name="imageUpload" id="imageUpload" method="post" enctype="multipart/form-data" >
            <fieldset>
                <legend>Upload Image</legend>
                Image :<input type="file" name="imgfile" id="imgfile"/><br />
                <input type="submit" name="createmark" id="createmark" value="Submit" />
            </fieldset>   
            <?php
    // tampilkan gambar di sini
                if(!empty($demo_image))
                    echo '<br/><center><img src="'.$demo_image.'" /></center>';
    else
        echo '<h3>'.$msg.'</h3>';
            ?>
        </form>
    </body>
</html>

Maka sekarang script anda selengkapnya adalah :

<?php 

//---- KONFIGURASI WATERMARK 
$text_show  = "Jin Toples"; // text watermark
$image_show = "logo4.png";   // gambar watermark
$font_path  = "Computerfont.TTF"; // jenis font
$font_size  = 24;       // ukuran font contoh 24 = 24px  
$path = "uploads/";   // folder upload gambar setelah proses watermark
$x = 100;
$y = 280;
$msg="";
if(isset($_GET['mode'])){
 $image_path = ($_GET['mode']=="img")? $image_show : $text_show; 
}else{
 $image_path = '';
}

function watermark_image($oldimage_name, $new_image_name){
    global $image_path;
    list($owidth,$oheight) = getimagesize($oldimage_name);
    $width = $height = 300;    // tentukan ukuran gambar akhir, contoh: 300 x 300
    $im = imagecreatetruecolor($width, $height);
    $img_src = imagecreatefromjpeg($oldimage_name);
    imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
    $watermark = imagecreatefrompng($image_path);
    list($w_width, $w_height) = getimagesize($image_path);        
    $pos_x = $width - $w_width; 
    $pos_y = $height - $w_height;
    imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height);
    imagejpeg($im, $new_image_name, 100); 
    imagedestroy($im);
    unlink($oldimage_name);
    return true;
}

function watermark_text($oldimage_name, $new_image_name){
    global $font_path, $font_size, $text_show;
    list($owidth,$oheight) = getimagesize($oldimage_name);
    $width = $height = 300;  // tentukan ukuran gambar akhir, contoh: 300 x 300  
    $image = imagecreatetruecolor($width, $height);
    $image_src = imagecreatefromjpeg($oldimage_name);
    imagecopyresampled($image, $image_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);  
 $blue   = imagecolorallocate($image, 79, 166, 185);  
// tentukan warna teks dalam RGB (255,255,255)
 $shadow = imagecolorallocate($image, 178, 178, 178); 
// efek teks shadow
    imagettftext($image, $font_size, 0, $x, $y, $blue, $font_path, $text_show); 
//posisi text pada gambar
    imagejpeg($image, $new_image_name, 100); 
    imagedestroy($image);
    unlink($oldimage_name);
    return true;
}

$demo_image = "";
if(isset($_POST['createmark']) and $_POST['createmark'] == "Submit"){
    $valid_formats = array("jpg","bmp","jpeg");
 $name = $_FILES['imgfile']['name'];
 if(strlen($name))
{
 list($txt, $ext) = explode(".", $name); 
 if(in_array($ext,$valid_formats)&& $_FILES['imgfile']['size'] <= 1024*1024){ // 1024*1024 = 1 MB limit upload image
  $upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']);
   if($upload_status){
    $new_name = $path.time().".jpg";
    if(isset($_GET['mode'])){
     if(watermark_image($path.$_FILES['imgfile']['name'], $new_name)) $demo_image = $new_name;
    } else { 
     if(watermark_text($path.$_FILES['imgfile']['name'], $new_name)) $demo_image = $new_name;    
    }
   }
  }
 } else { $msg="File size Max 1 M or Invalid file format supports .jpg and .bmp";   }
}
?>
<html>
    <head>
        <title>PHP Text Watermark</title>
        <style type="text/css">
            body{ width:800px; margin: 15px auto; padding:0px; font-family: arial}                
        </style>
    </head>
    <body>
    <h1><?php 
   // navigasi Text / Image Watermark
   if(!isset($_GET['mode'])){
    echo "Text WaterMark | <a href='".$_SERVER['PHP_SELF']."?mode=img'>Image WaterMark</a>";
   }else{
    echo "<a href='".$_SERVER['PHP_SELF']."'>Text WaterMark</a> | Image WaterMark";
   }
  ?>
 </h1>
        <form name="imageUpload" id="imageUpload" method="post" enctype="multipart/form-data" >
            <fieldset>
                <legend>Upload Image</legend>
                Image :<input type="file" name="imgfile" id="imgfile"/><br />
                <input type="submit" name="createmark" id="createmark" value="Submit" />
            </fieldset>   
            <?php
    // tampilkan gambar di sini
                if(!empty($demo_image))
                    echo '<br/><center><img src="'.$demo_image.'" /></center>';
    else
        echo '<h3>'.$msg.'</h3>';
            ?>
        </form>
    </body>
</html>

Sekarang coba anda jalankan script anda di browser, upload lah sebuah gambar kemudian klik submit.

Aplikasi ini mempunyai dua fungsi yaitu watermark dengan menggunakan text dan watermark dengan menggunakan gambar, untuk watermark dengan menggunakan gambar anda cukup klik pada link "Image Watermark".

Watermark Gambar / Image Sederhana Dengan PHP sekarang sudah selesai, baca juga tutorial program PHP lainnya.

Terima Kasih Telah Mengunjungi Blog Sederhana Ini.

Di Mohon Apabila Anda Ingin Mengcopas Artikel Pada Blog ini Cantumkan URL Sumber.

Sebagai Pengunjung Yang Baik Anda Dapat Meninggalkan Komentar di Blog Sederhana Ini.

Share this post

2 komentar

:) :) :-) :-) :)) :)) =)) =)) :( :( :-( :-( :(( :(( :d :d :-d :-d @-) @-) :p :p :o :o :>) :>) (o) (o) [-( [-( :-? :-? (p) (p) :-s :-s (m) (m) 8-) 8-) :-t :-t :-b :-b b-( b-( :-# :-# =p~ =p~ :-$ :-$ (b) (b) (f) (f) x-) x-) (k) (k) (h) (h) (c) (c) cheer cheer

 
© Jin Toples Programming
Designed by BlogThietKe Cooperated with Duy Pham
Released under Creative Commons 3.0 CC BY-NC 3.0