教程:如何在ecshop二次开发中为商品添加水印
1. 下载水印插件,上传到ecshop的addons目录下。 2. 登录后台,进入“插件管理”,找到刚刚上传的水印插件,点击安装。 3. 安装完成后,进入“模板管理”,选择需要添加水印的商品详情页模板。 4. 在模板中找到商品图片的位置,插入以下代码:{php $watermark_img = $this->getWatermarkImg($goods['goods_id']);} 5. 保存模板,重新生成商品详情页。 6. 登录FTP,进入网站根目录,找到images文件夹,将水印图片上传到该文件夹下。 7. 完成以上步骤后,所有商品详情页的图片都会自动添加水印。
ecshop商城如何怎么添加图片水印?ecshop教程网图解ecshop商品添加水印,ecshop文章添加水印教程。
Kindeditor编辑器和百度编辑器上传图片自动添加水印方法
1.给Ecshop编辑器Kindeditor图片上传添加水印功能:
在kindeditor/php/upload_JSON.php中,有两处需要修改的地方。
第一步,在文件末尾添加一个方法
functionimageWaterMark($groundImage,$waterPos=0,$waterImage=”,$alpha=80,$waterText=”,$textFont=9,$textColor=’#FF0000′){$isWaterImage=FALSE;$formatMsg=‘不支持该图片格式!请使用GIF、JPG、PNG格式的图片。’;//读取水印文件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]){//取得水印图片的格式case1:$water_im=imagecreatefromgif($waterImage);break;case2:$water_im=imagecreatefromjpeg($waterImage);break;case3:$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]){//取得背景图片的格式case1:$ground_im=imagecreatefromgif($groundImage);break;case2:$ground_im=imagecreatefromjpeg($groundImage);break;case3:$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;//ecshop119.com}switch($waterPos){case0://随机$posX=rand(0,($ground_w–$w));$posY=rand(0,($ground_h–$h));break;case1://1为顶端居左$posX=0;$posY=0;break;case2://2为顶端居中$posX=($ground_w–$w)/2;$posY=0;break;case3://3为顶端居右$posX=$ground_w–$w;$posY=0;break;case4://4为中部居左$posX=0;$posY=($ground_h–$h)/2;break;case5://5为中部居中$posX=($ground_w–$w)/2;$posY=($ground_h–$h)/2;break;case6://6为中部居右$posX=$ground_w–$w;$posY=($ground_h–$h)/2;break;case7://7为底端居左$posX=0;$posY=$ground_h–$h;break;case8://8为底端居中$posX=($ground_w–$w)/2;$posY=$ground_h–$h;break;case9://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]){//取得背景图片的格式case1:imagegif($ground_im,$groundImage);break;case2:imagejpeg($ground_im,$groundImage,100);break;//注意这里的100,经测试,100是图片质量最佳的,但文件大小会增加很多,95的时候质量还不错,大小和原来的差不多。作者采用95的值。case3: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[‘DOCUMENT_ROOT’].’/images/water.gif’;//水印图片,默认填写空,请将图片上传至网站根目录的images下,例:water.gif$water_alpha=50;//水印透明度$water_text=”;//水印字符串,默认填写空;//$water_fontfile=$_SERVER[‘DOCUMENT_ROOT’].’/upfiles/fonts/arial.ttf’;//文字水印使用的字体;if($water_mark==1){imageWaterMark($file_path,$water_pos,$water_img,$water_alpha,$water_text);}
这里只需要上传一张水印图片即可。
完成上述操作后,在用Kindeditor编辑器上传图片就可以实现上图的效果了。
2.ecshop百度编辑器添加水印功能
打开includes/ueditor/php/imageUp.php文件,添加如下代码
//添加水印,载入水印需要的文件@authorECShop.Cxstartdefine('IN_ECS',true);define('INIT_NO_USERS',true);require_once('../../init.php');require_once('../../cls_image.php');$image=newcls_image();if(intval($_CFG['watermark_place'])>0&&!empty($_CFG['watermark'])){$image->add_watermark($tmpName,'','../../'.$_CFG['watermark'],$_CFG['watermark_place'],$_CFG['watermark_alpha']);}//添加水印,载入水印需要的文件