为了保护平台资源的版权,同时也为了彰显平台的专业性,很多b2b2c商城系统设计了图片上传的时候将图片自动添加水印。那这些图片水印,在b2b2c商城系统开发过程中是怎么实现的呢?
今天安菲云给您分享b2b2c商城系统如何给上传的图片添加水印。
以行业内做得比较好的安菲开源b2b2c商城系统为例,给上传的图片添加水印是通过thinkphp 5.1自带的添加水印的方法。其流程也是放在上传图片的方法中,根据前台传递的参数“是否需要添加水印”来执行。
在“平台”-“系统管理”-“平台配置”中的“图片设置”来设置水印相关的参数。
示例代码:
/***************************** 添加水印 ***********************************/
if((int)WSTConf('CONF.watermarkPosition')!==0){
//取出水印配置
$wmWord =
WSTConf('CONF.watermarkWord');//文字
$wmFile =
trim(WSTConf('CONF.watermarkFile'),'/');//水印文件
//判断水印文件是否存在
if(!file_exists(WSTRootPath()."/".$wmFile))$wmFile = '';
$wmPosition =
(int)WSTConf('CONF.watermarkPosition');//水印位置
$wmSize =
((int)WSTConf('CONF.watermarkSize')!=0)?WSTConf('CONF.watermarkSize'):'20';//大小
$wmColor =
(WSTConf('CONF.watermarkColor')!='')?WSTConf('CONF.watermarkColor'):'#000000';//颜色必须是16进制的
$wmOpacity =
((int)WSTConf('CONF.watermarkOpacity')!=0)?WSTConf('CONF.watermarkOpacity'):'100';//水印透明度
//是否有自定义字体文件
$customTtf =
Env::get('root_path').WSTConf('CONF.watermarkTtf');
$ttf =
is_file($customTtf)?$customTtf:Env::get('extend_path').'verify/verify/ttfs/3.ttf';
$image = \image\Image::open($imageSrc);
if(!empty($wmWord)){//当设置了文字水印 就一定会执行文字水印,不管是否设置了文件水印
// 文字偏移量
$offset =
WSTConf('CONF.watermarkOffset');
if($offset!=''){
$offset =
explode(',',str_replace(',', ',',$offset));
$offset = array_slice($offset,0,2);
$offset =
array_map(function($val){return (int)$val;},$offset);
if(count($offset)<2)array_push($offset, 0);
}
//执行文字水印
$image->text($wmWord, $ttf,
$wmSize, $wmColor, $wmPosition,$offset)->save($imageSrc);
//如果有生成手机版原图
if(!empty($mSrc)){
$image =
\image\Image::open($imageSrc);
$image->thumb($mWidth,
$mHeight)->save($mSrc,$image->type(),90);
}
}elseif(!empty($wmFile)){//设置了文件水印,并且没有设置文字水印
//执行图片水印
$image->water($wmFile,
$wmPosition, $wmOpacity)->save($imageSrc);
//如果有生成手机版原图
if($mSrc!==null){
$image =
\image\Image::open($imageSrc);
$image->thumb($mWidth,
$mHeight)->save($mSrc,$image->type(),90);
}
}
}
以上是安菲云为大家分享的b2b2c商城系统自动添加水印的方法,代码大家可以点击下载开源B2B2C商城系统,有疑问的可以在文章底部留言我们哦