現在在多商戶商城系統裏,給上傳的商品圖片加上專屬水印是一件非常常見的事情,那麽在商淘的多商戶商城系統裏,要如何實現給上傳的圖片添加上水印的呢?接下來就一起來看看吧。
在商淘的多商戶商城系統給上傳的圖片添加水印是通過TP5自帶的添加水印的方法。其流程也是放在上傳圖片的方法中,根據前臺傳遞的參數“是否需要添加水印”來執行。
管理員可以在商淘多商戶商城系統的後臺裏,“平臺”-“系統管理”-“平臺配置”中的“圖片設置”來設置水印相關的參數。具體如下圖所示:
示例代碼:
/*****************************添加水印***********************************/
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);
}
}
}