用 Gallery 這個相簿已有一陣子的時間了
一直想要加個 WaterMark 的功能,但一直沒時間
也沒找到適合的 WaterMark hack module。
昨天,又到其官網討論區搜尋,總算皇天不負苦心人
給我找到一個適合用簡單的 hack mod..
這個方法適用於 cpg 1.4.3 並裝有 ImageMagick 套件..
我昇級成 1.4.5 亦可完全適用。步驟很簡單...
1. 在 includes/functions.inc.php 的 1985 行, 找到
[php]$filepathname = $url_prefix[$pic_row['url_prefix']]. path2url($pic_row['filepath']. $pic_prefix[$mode]. $pic_row['filename']);[/php]
用下列取代
[php]if((($mode == "normal") || ($mode == 'fullsize')) && ($CONFIG['thumb_method']=='im')){
// return the url to the wm script
$filepathname = "wm.php?pid=".$pic_row["pid"]."&mode=".$mode;
}else{
// it's a thumb, don't bother wm'ing
$filepathname = $url_prefix[$pic_row['url_prefix']]. path2url($pic_row['filepath']. $pic_prefix[$mode]. $pic_row['filename']);
}[/php]
2. 在 coppermine 的根目錄建一個名為 WM.PHP 的檔案,並把下面的程式碼填入
[php]define('IN_COPPERMINE', true);
require('include/init.inc.php');
header('Content-Type: image/jpeg');
header('Content-Disposition: inline; filename=file.jpg');
$pid = $_REQUEST["pid"];
$mode = $_REQUEST["mode"];
$sql = "SELECT * FROM ".$CONFIG['TABLE_PREFIX']."pictures WHERE pid=$pid";
$db = mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);
mysql_select_db($CONFIG['dbname'], $db);
$result = mysql_query($sql, $db);
$row = mysql_fetch_array($result);
$pic_prefix = array(
'thumb' => $CONFIG['thumb_pfx'],
'normal' => $CONFIG['normal_pfx'],
'fullsize' => ''
);
$cmd = "{$CONFIG['impath']}composite -compose over -gravity SouthEast \"".realpath("./watermark.png")."\" \"".realpath('./'.$CONFIG["fullpath"].$row["filepath"].$pic_prefix[$mode].$row["filename"])."\" jpg:-";
passthru ($cmd, $output);
echo $output;
?>[/php]
3. 取得一份 watermark.png,修改成自己要的圖案再放到相簿的根目錄即可
Watermark.PNG
原始連結
沒有留言:
張貼留言