php如何实现自动加水印
2个回答
展开全部
加水印逻辑有两种
一种是上传直接加水印
另一种是利用伪静态将图片访问重定向到处理程序,临时加水印缓存并输出
php处理图片加水印可以使用gd库中的相关函数
以下为临时手打代码,可以按此思路优化,有问题可以联系本人
//此处需根据上传的图片格式使用对应函数实例化图片
$img=imagecreatefromjpg($imgurl);
//根据水印图片路径实例化水印
$waterImg=imagecreatefrompng($waterpath);
//获取原图及水印图片尺寸,用以计算是否需要缩放及放置位置
list($width, $height, $type, $attr) = getimagesize($imgurl);
list($waterw, $waterh, $type, $attr) = getimagesize($waterpath);
$scale=1;
$waterReleaseW=$waterw;
$waterReleaseH=$waterh;
if($waterReleaseW>$width*.5){
$scale=$width*.5/$waterw;
$waterReleaseW = $width*.5;
$waterReleaseH = $waterh*$scale;
}
if($waterReleaseH>$height*.5){
$scale *= $height*.5/$waterh;
$waterReleaseH = $height*.5;
$waterReleaseW = $waterw*$scale;
}
//将水印图片拷贝到原图指定位置(此示例为右下角)
imagecopyresized($img,$waterImg,
$width-$waterReleaseW-10,$height-$waterReleaseH-10,
0,0,
$width-10,$height-10,
$waterw,$waterh);
//销毁水印图片实例
imagedestroy($waterImg);
//水印后图片保存
imagejpeg($img,$newpath);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询