2KB项目,专业的源码交易网站 帮助 收藏 每日签到

ecshop教程:编辑器kindeditor图片上传添加水印功能

  • 时间:2019-01-31 02:15 编辑:2KB 来源:2KB.COM 阅读:358
  • 扫一扫,手机访问
  • 分享
摘要: 以前在网站介绍过ecshop更换编辑成kindeditor的方法,但是上传的图片不能自动增加水印,今天把相应方法告诉大家:   在kindeditor/php/upload_json.php中,有两处需要修改的地方。 第一步,在文件末尾添加一个方法 f
以前在网站介绍过ecshop更换编辑成kindeditor的方法,但是上传的图片不能自动增加水印,今天把相应方法告诉大家:   在kindeditor/php/upload_json.php中,有两处需要修改的地方。 第一步,在文件末尾添加一个方法 function imageWaterMark($groundImage, $waterPos=0, $waterImage=&#39;&#39;, $alpha=80, $waterText=&#39;&#39;, $textFOnt=9, $textColor=&#39;#FF0000&#39;){     $isWaterImage = FALSE;     $formatMsg = &#39;不支持该图片格式!请使用GIF、JPG、PNG格式的图片。&#39;;     //读取水印文件     if(!empty($waterImage) && file_exists($waterImage)){         $isWaterImage = TRUE;         $water_info = getimagesize($waterImage);         $water_w = $water_info[0];//取得水印图片的宽         $water_h = $water_info[1];//取得水印图片的高         switch($water_info[2]){//取得水印图片的格式             case 1:$water_im = imagecreatefromgif($waterImage);break;             case 2:$water_im = imagecreatefromjpeg($waterImage);break;             case 3:$water_im = imagecreatefrompng($waterImage);break;             default:die($formatMsg);         }     }     //读取背景图片     if(!empty($groundImage) && file_exists($groundImage)){         $ground_info = getimagesize($groundImage);         $ground_w = $ground_info[0];//取得背景图片的宽         $ground_h = $ground_info[1];//取得背景图片的高         switch($ground_info[2]){//取得背景图片的格式             case 1:$ground_im = imagecreatefromgif($groundImage);break;             case 2:$ground_im = imagecreatefromjpeg($groundImage);break;             case 3:$ground_im = imagecreatefrompng($groundImage);break;             default:die($formatMsg);         }     }else{         alert("水印图片不存在!");     }     //水印位置     if($isWaterImage){//图片水印         $w = $water_w;         $h = $water_h;         $label = "图片的";     }     if(($ground_w<$w) || ($ground_h<$h)){         echo "需要加水印的图片的长度或宽度比水印".$label."还小,无法生成水印!";         return; // www.zuimoban.com     }     switch($waterPos){         case 0://随机         $posX = rand(0,($ground_w - $w));         $posY = rand(0,($ground_h - $h));         break;         case 1://1为顶端居左         $posX = 0;         $posY = 0;         break;         case 2://2为顶端居中         $posX = ($ground_w - $w) / 2;         $posY = 0;         break;         case 3://3为顶端居右         $posX = $ground_w - $w;         $posY = 0;         break;         case 4://4为中部居左         $posX = 0;         $posY = ($ground_h - $h) / 2;         break;         case 5://5为中部居中         $posX = ($ground_w - $w) / 2;         $posY = ($ground_h - $h) / 2;         break;         case 6://6为中部居右         $posX = $ground_w - $w;         $posY = ($ground_h - $h) / 2;         break;         case 7://7为底端居左         $posX = 0;         $posY = $ground_h - $h;         break;         case 8://8为底端居中         $posX = ($ground_w - $w) / 2;         $posY = $ground_h - $h;         break;         case 9://9为底端居右         $posX = $ground_w - $w;         $posY = $ground_h - $h;         if(!$isWaterImage){         $posY = $ground_h - $h-20;         }         break;         default://随机         $posX = rand(0,($ground_w - $w));         $posY = rand(0,($ground_h - $h));         break;     }     //设定图像的混色模式     imagealphablending($ground_im, true);     if($isWaterImage){//图片水印         //imagecopy($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷贝水印到目标文件         //生成混合图像         imagecopymerge($ground_im, $water_im, $posX, $posY, 0, 0, $water_w, $water_h, $alpha);     } else {//文字水印         if( !empty($textColor) && (strlen($textColor)==7)){             $R = hexdec(substr($textColor,1,2));             $G = hexdec(substr($textColor,3,2));             $B = hexdec(substr($textColor,5));         } else {             die("水印文字颜色格式不正确!");         }         imagestring($ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));     }     //生成水印后的图片     @unlink($groundImage);     switch($ground_info[2]){//取得背景图片的格式         case 1:imagegif($ground_im,$groundImage);break;         case 2:imagejpeg($ground_im,$groundImage,100);break;//注意这里的100,经测试,100是图片质量最佳 的,但文件大小会增加很多,95的时候质量还不错,大小和原来的差不多。作者采用95的值。         case 3:imagepng($ground_im,$groundImage);break;         default:die($errorMsg);     }     //释放内存     if(isset($water_info)) unset($water_info);     if(isset($water_im)) imagedestroy($water_im);     unset($ground_info);     imagedestroy($ground_im); } 第二步,找到$json = new Services_JSON();(这个文件中有两处,alert($msg)方法里的不用操作),在后面添加如下一段代码 $water_mark = 1;//1为加水印, 其它为不加     $water_pos = 9;//水印位置,10种状态【0为随机,1为顶端居左,2为顶端居中,3为顶端居右;4为中部居左,5为中部居中,6为中部居右;7为底端居左,8为底端居中,9为底端居】    $water_img = $_SERVER[&#39;DOCUMENT_ROOT&#39;].&#39;/images/water.gif&#39;;//水印图片,默认填写空,请将图片上传至网站根目录的images下,例: water.gif     $water_alpha = 50;//水印透明度     $water_text = &#39;&#39;;//水印字符串,默认填写空;     //$water_fOntfile= $_SERVER[&#39;DOCUMENT_ROOT&#39;] .&#39;/upfiles/fonts/arial.ttf&#39;;//文字水印使用的字体;     if($water_mark == 1){         imageWaterMark($file_path, $water_pos, $water_img, $water_alpha, $water_text);     } 这里只需要上传一张水印图片即可。 完成上述操作后,在用编辑器上传图片就可以实现上图的效果了。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部