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
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 :
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.
<?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>
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.
Wah, tutorial dari Jin Toples memang selalu keren :)
ReplyDeleteMantap gan, aku coba dulu , thank tutorialnya
ReplyDelete