Sekedar sharing aja, gue melihat kenyataan disini banyak blogger yang hobi fotografi.
untuk yang menggunakan gallery script yg canggih, kadang ada fasilitas untuk menambahkan watermark, baik berupa tulisan maupun logo/gambar di setiap foto secara otomatis.
untuk blogger yang posting menggunakan winlivewriter, fungsi ini juga ada, jadi setiap kali posting dengan foto/image, ada pilihan untuk memberikan watermark di foto yang akan di upload.
lalu gimana dengan blogger katro yang kadang langsung main upload aja?
ya tergantung niatnya lah, klo cuma sharing foto2 yang memang sudah beredar bebas, no problem. ga usah pake watermark2an segala. tapi buat fotografer yang mau hasil karyanya dihargai, kalo cuma upload foto/image tanpa menunjukkan jati diri sang fotografer, kayaknya kurang afdol gitu...
nah, tutorial berikut untuk memberikan efek watermark di semua image/foto yang di upload ke blog tanpa harus repot2 meng-edit satu persatu.
yang diperlukan:
- server apache dengan mod_rewrite (jelas harus bisa upload/edit file .htaccess)
- php dan gd library dengan png dan jpg support (standarnya sih udah paketan)
- kemampuan membaca artikel ini dengan jelas.
PENTING !
script berikut akan mempengaruhi tampilan semua foto/image didalam folder dan sub-folder, jadi sangat tidak disarankan untuk meletakkannya di root folder, karena akan berakibat juga terhadap image yang digunakan dalam template/skin.
jadi disarankan untuk meletakkan didalam folder dimana hanya terdapay foto/image yang akan di watermark (misal, di WP bisa menggunakan folder wp-content/uploads, dll).
Langkah 1siapkan sebuah file image yang akan digunakan sebagai watermark. file ini harus dalam format .png, beri nama file
watermark.pnguntuk tampilan disarankan agar menggunakan file dengan efek transparan, jadi tidak menutupi terlalu banyak area dalam image/foto sesungguhnya.
ukuran-nya bisa bermacam-macam, tergantung selera. bisa memanjang vertikal atau horisontal, atau square logo. contohnya bisa diliat disini:
http://sammy.web.id/blog/watermark.pngposisi yang akan digunakan adalah pojok kanan bawah, jadi sesuaikan dengan panjang/lebar watermark.png.
perhatikan juga ukuran file yang digunakan, karena file ini akan diproses php script, pastikan tidak memberati waktu loading dengan ukuran yang berlebihan.
2-5 kb masih bisa ditolerir (rata2 gue cuma pake 1-1,5 kb).
Langkah 2buat file
.htaccess dengan content berikut:
# Redirect display of files to a PHP
RewriteEngine On
RewriteRule ^(.+)\.jpg$ wrapper.php?image=$1\.jpg [L]
RewriteRule ^(.+)\.gif$ wrapper.php?image=$1\.gif [L]
RewriteRule ^(.+)\.png$ wrapper.php?image=$1\.png [L]
RewriteRule ^(.+)\.bmp$ wrapper.php?image=$1\.bmp [L]
fungsi ini akan me-redirect (gue bingung terjemahannya) semua request untuk file2 seperti tertera (.jpg .gif .png .bmp) untuk terlebih dahulu diproses menggunakan file wrapper.php (dijelaskan di langkah 3)
Langkah 3buat file
wrapper.php dengan code berikut:
<?php
$watermark = "watermark.png";
$image = $_GET["image"];
if (empty($image)) die();
if (!file_exists($image)) {
header("404 Not Found");
echo "File Not Found."; die();
}
$outputType = getFileType($image);
watermark($image, $watermark, $outputType);
/**
Outputs the image $source with $watermark in the lower right corner.
@param $source the source image
@param $watermark the watermark to apply
@param $outputType the type to output as (png, jpg, gif, etc.)
defaults to the image type of $source if left blank
*/
function watermark($source, $watermark, $outputType="") {
$sourceType = getFileType($source);
$watermarkType = getFileType($watermark);
if (empty($outputType)) $outputType = $sourceType;
if ($outputType == "gif") $outputType = "png"; // Okay to remove after July 2004
header("Content-type:image/$outputType");
// Derive function names
$createSource = "ImageCreateFrom".strtoupper($sourceType);
$showImage = "Image".strtoupper($outputType);
$createWatermark = "ImageCreateFrom".strtoupper($watermarkType);
// Load original and watermark to memory
$output = $createSource($source);
$logo = $createWatermark($watermark);
ImageAlphaBlending($output, true);
// Find proper coordinates so watermark will be in the lower right corner
$x = ImageSX($output) - ImageSX($logo);
$y = ImageSY($output) - ImageSY($logo);
// Display
ImageCopy($output, $logo, $x, $y, 0, 0, ImageSX($logo), ImageSY($logo));
$showImage($output);
// Purge
ImageDestroy($output);
ImageDestroy($logo);
}
function getFileType($string) {
$type = strtolower(eregi_replace("^(.*)\.","",$string));
if ($type == "jpg") $type = "jpeg";
return $type;
}
buat yang ga mau repot2, bisa download file-nya disini:
http://sammy.web.id/blog/content/wrapper.php.txtjangan lupa untuk rename jadi wrapper.php
Langkah 4upload ke-3 file tadi kedalam folder dimana terdapat file2 foto/image di hosting.
efek watermark akan berpengaruh juga terhadap file2 image/foto didalam sub-folder dimana script tadi diletakkan. jadi cukup di folder itu saja.
SelesaiSilahkan dilihat hasilnya.
Efek ini juga berpengaruh apabila foto di masukkan kedalam postingan (embed ke html).
untuk contoh hasilnya bisa liat blog gue:
http://sammy.web.id/job-vacancy-condom-tester.htmlatau direct link ke file image/foto:
http://sammy.web.id/blog/content/uploads/pic26924.jpgmudah2an berguna.. dan jangan lupa kurmanya...
*beli karung bekas dulu ah...*