Discuz論壇教程之讓水印平鋪的修改方法是什么,很多人都感嘆自己辛苦做的圖片被別人拷貝過去,怎么能不心傷,有什么辦法可以杜絕圖片的流失,維護版權呢,今天我們就來看看Discuz論壇處理的圖片的方法吧!
修改文件:/source/class/class_image.php
修改原理:計算水印大小和圖片大小,每次偏移一個水印的位置重復打水??;
由于discuz支持png和gif兩種水印,因此本方法涉及兩處修改:
修改1屬于支持png水印,修改2屬于支持gif水??;
修改1:大概第475行原始代碼
if($this->param['watermarktype'][$type] == 'png') {
imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);
}
修改為
if($this->param['watermarktype'][$type] == 'png') {
//修改1 開始
//imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);
if(intval($this->imginfo['width']/$logo_w)>=3){
$wblank=($logo_w+$this->imginfo['width']%$logo_w)/intval($this->imginfo['width']/$logo_w);
$hblank=($logo_h+$this->imginfo['height']%$logo_h)/intval($this->imginfo['height']/$logo_h);
for($x = $wblank;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+$wblank){
for($y = $hblank;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+$hblank){
imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);
}
}
}else{
for($x = 5;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+10){
for($y = 5;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+10){
imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);
}
}
}
//修改1 結束
}
修改2:大概500行,原始代碼為:
else {
imageAlphaBlending($watermark_logo, true);
imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);
}
修改為:
else {
imageAlphaBlending($watermark_logo, true);
//修改2 開始
if(intval($this->imginfo['width']/$logo_w)>=3){
$wblank=($logo_w+$this->imginfo['width']%$logo_w)/intval($this->imginfo['width']/$logo_w);
$hblank=($logo_h+$this->imginfo['height']%$logo_h)/intval($this->imginfo['height']/$logo_h);
for($x = $wblank;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+$wblank){
for($y = $hblank;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+$hblank){
imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);
}
}
}else{
for($x = 5;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+10){
for($y = 5;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+10){
imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);
}
}
}
//imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);
//修改2 結束
}
修改后的水印平鋪效果
新聞熱點
疑難解答