nav-left cat-right
cat-right
discuz图片附件双水印

看到一些网站的图片都是左上和右下都有水印,于是就想到修改discuz生成水印的函数来实现,具体操作步骤如下:
先打开include/image.class.php,修改水印位置相关的内容:

 
                switch($watermarkstatus) {
                    case 1:
                        $x = +5;
                        $y = +5;
                        break;
                    case 2:
                        $x = ($img_w - $logo_w) / 2;
                        $y = +5;
                        break;
                    case 3:
                        $x = $img_w - $logo_w - 5;
                        $y = +5;
                        break;
                    case 4:
                        $x = +5;
                        $y = ($img_h - $logo_h) / 2;
                        break;
                    case 5:
                        $x = ($img_w - $logo_w) / 2;
                        $y = ($img_h - $logo_h) / 2;
                        break;
                    case 6:
                        $x = $img_w - $logo_w;
                        $y = ($img_h - $logo_h) / 2;
                        break;
                    case 7:
                        $x = +5;
                        $y = $img_h - $logo_h - 5;
                        break;
                    case 8:
                        $x = ($img_w - $logo_w) / 2;
                        $y = $img_h - $logo_h - 5;
                        break;
                    case 9:
                        $x = $img_w - $logo_w - 5;
                        $y = $img_h - $logo_h - 5;
                        break;
 
                    case 10://10为左上+右下双水印,这里是新增的
                 $x1 = +5;
                        $y1 = +5;
                        $x2 = $img_w - $logo_w - 5;
                        $y2 = $img_h - $logo_h - 5;
                        break;
                }

还有

if($watermarktype == 1) {
		($watermarkstatus==10){//判断是否是双水印
                        @imageCopy($dst_photo, $watermark_logo, $x1, $y1, 0, 0, $logo_w, $logo_h);
                        @imageCopy($dst_photo, $watermark_logo, $x2, $y2, 0, 0, $logo_w, $logo_h);
                    } else{
                        @imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);
                    }
				}

最后打开admin/setting.inc.php找到showsetting(‘settings_attach_image_watermarkstatus’,后面增加一行:

<input class="radio" type="radio" name="settingsnew[watermarkstatus]" value="10" '.$checkwm[10].'> #10 双水印

这样就可以再后台附件设置里看到。

帝国CMS Png透明水印解决方案

不知WC大大怎么想的,帝国CMS无论是老版还是新版就是不在水印函数里加入png透明水印的支持,还以为多复杂呢,研究一下发现原来是如此的简单,解决方案如下:

找到e/class/db.php中的:

 

if($isWaterImage)//图片水印
    {
        imagecopymerge($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h,$w_pct);//拷贝水印到目标文件
    }

将下面的代码改为下面的,原因是PNG类型水印本身具有真彩透明效果,所以水印融合度设置在这里是无效的:
阅读全部