為了保護平臺資源的版權(quán),同時也為了彰顯平臺的專業(yè)性,很多b2b2c商城系統(tǒng)設(shè)計了圖片上傳的時候?qū)D片自動添加水印。那這些圖片水印,在b2b2c商城系統(tǒng)開發(fā)過程中是怎么實現(xiàn)的呢?
今天安菲云給您分享b2b2c商城系統(tǒng)如何給上傳的圖片添加水印。
以行業(yè)內(nèi)做得比較好的安菲開源b2b2c商城系統(tǒng)為例,給上傳的圖片添加水印是通過thinkphp 5.1自帶的添加水印的方法。其流程也是放在上傳圖片的方法中,根據(jù)前臺傳遞的參數(shù)“是否需要添加水印”來執(zhí)行。
在“平臺”-“系統(tǒng)管理”-“平臺配置”中的“圖片設(shè)置”來設(shè)置水印相關(guān)的參數(shù)。
示例代碼:
/***************************** 添加水印 ***********************************/
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)){//當(dāng)設(shè)置了文字水印 就一定會執(zhí)行文字水印,不管是否設(shè)置了文件水印
// 文字偏移量
$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);
}
//執(zhí)行文字水印
$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)){//設(shè)置了文件水印,并且沒有設(shè)置文字水印
//執(zhí)行圖片水印
$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商城系統(tǒng)自動添加水印的方法,代碼大家可以點擊下載開源B2B2C商城系統(tǒng),有疑問的可以在文章底部留言我們哦