版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27905477/article/details/78880821
是这个样子的,我的在给一个比较老的网站需要增加文章水印的功能,本来我是想拷贝来的 用就成了, 但是总是有错误提示!
因此,只能自己写了;
一、定义了一个 setwater.php的文件
```
function setwater($src,$water){
//$src 为需要添加图片的源途径;$water为水印图片路径;
//测试后,路径可采取相对路径进行访问;对此网站我们需要去掉 uploadfiles前的/
$src_path = substr($src, 1);
$water_path = $water;
//获取图片的类型及宽/高
list($src_w,$src_h,$src_type) = getimagesize($src_path);
list($water_w,$water_h) = getimagesize($water_path);
//pos 为水印放置的位置;右下角
$posX = $src_w - $water_w;
$posY = $src_h-$water_h;//假设它是符合坐标系y原则,
//关于 水印宽度高度设置;我们采取不设置,那么水印的大小就是原始大小;
if($src_w>400 && $src_h>200){
//1 = GIF,2 = JPG,3 = PNG,4 = SWF
$water_source = imagecreatefrompng($water_path);
switch ($src_type) {
case 1:
$src_source = imagecreatefromgif($src_path);
imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
imagegif($src_source,$src_path);
break;
case 2:
$src_source = imagecreatefromjpeg($src_path);
imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
imagejpeg($src_source,$src_path);
break;
case 3:
$src_source = imagecreatefrompng($src_path);
imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
imagepng($src_source,$src_path);
break;
default:
break;
}
$src = "/".$src_path;
return $src;
}else{
//小图片不加水印
return $src;
}
imagedestroy($src_source);
imagedestroy($water_source);
}
```
在编辑器图片板块的文件中设置调用:
```
//添加水印开始
$filename = $config['site_url'].$file_abso;
$wate = syurl;
setwater($filename,$wate);
//添加水印结束
```
这个方法呢只传入两个参数,是图片的源路径,
关于路径,就是类似 很多网站自己定义的/upfileloads/…….......jpg,是读取不到图片的,可以使用网站的绝对路径或者相对路径才能进行访问!
第二个,网站有个随机命名图片名称的方式,但是在我设置图片增加水印的方法后,提示
it is,总之就是时区不对 的意思,在php.ini增加,时区为重庆,才ok了!