|
对于如何在图片上添加水印是许多技术人员遇到的一个难题,那大家都见过微信公众号及一些其他技术平台是可以实现这个功能的,但是对于源码是如何实现的,却没有头绪,那么今天就为大家介绍一下关于kindeditor上传图片加水印的方法,看完之后相信各位技术人员就知道了。
第一步:修改upload_json.php文件
在编辑器的/php/目录下可以找到这个文件,新增一个函数:
/*
功能:PHP图片水印,水印支持图片或文字
参数:
$groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式;
$waterPos 水印位置,有10种状态,0为随机位置;
1为顶端居左,2为顶端居中,3为顶端居右;
4为中部居左,5为中部居中,6为中部居右;
7为底端居左,8为底端居中,9为底端居右;
$waterImage 图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式;
$alpha 水印透明度,取值1-100;
$waterText 文字水印,即把文字作为为水印,支持ASCII码,不支持中文;
$textFont 文字大小,值为1、2、3、4或5,默认为5;
$textColor 文字颜色,值为十六进制颜色值,默认为#FF0000(红色);
$waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。
当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。
加水印后的图片的文件名和 $groundImage 一样。
*/
function imageWaterMark($groundImage, $waterPos=0, $waterImage='', $alpha=80, $waterText='', $water_fontfile, $textFont=9, $textColor='#FF0000'){
$isWaterImage = FALSE;
$formatMsg = '不支持该图片格式!请使用GIF、JPG、PNG格式的图片。';
$fontFile = $water_fontfile;
//读取水印文件
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 = "图片的";
}else{//文字水印
$temp = imagettfbbox($textFont, 0, $fontFile, $waterText);//取得使用 TrueType 字体的文本的范围
$w = $temp[2] - $temp[6];
$h = $temp[3] - $temp[7];
unset($temp);
$label = "文字区域";
}
if(($ground_w |
|
|