php函数给目标图片添加水印
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2014-09-14 12:31:02
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
/**
*给目标图片添加水印
//使用示例
markimg(array(
'dst'=>'./images/1.jpg',//原始图像
'src'=>'./images/ico.png',//水印图像
'pos'=>'center'//水印位置('left,right,center')
));
*/
function markimg($info=array(
'det'=>null,
'src'=>null,
'pos'=>'right'
)){
//原始图像
$dst =$info['dst'] ;//"./images/tu.png"; //注意图片路径要正确
//水印图像
$src = $info['src'];//"./images/ico.png"; //注意路径要写对
//水印在原图的位置比例
$pos=$info['pos'];
//得到原始图片信息
$dst_info = getimagesize($dst);
switch ($dst_info[2])
{
case 1: $dst_im =imagecreatefromgif($dst);break;
case 2: $dst_im =imagecreatefromjpeg($dst);break;
case 3: $dst_im =imagecreatefrompng($dst);break;
case 6: $dst_im =imagecreatefromwbmp($dst);break;
default: die("不支持的文件类型1");exit;
}
$src_info = getimagesize($src);
switch ($src_info[2])
{
case 1: $src_im =imagecreatefromgif($src);break;
case 2: $src_im =imagecreatefromjpeg($src);break;
case 3: $src_im =imagecreatefrompng($src);break;
case 6: $src_im =imagecreatefromwbmp($src);break;
default: die("不支持的文件类型1");exit;
}
//支持png本身透明度的方式
switch($pos){
case 'right':
//右下角
imagecopy($dst_im,$src_im,$dst_info[0]-$src_info[0]-10,$dst_info[1]-$src_info[1]-10,0,0,$src_info[0],$src_info[1]);
break;
case 'center':
//正中间
imagecopy($dst_im,$src_im,($dst_info[0]-$src_info[0])/2,($dst_info[1]-$src_info[1])/2,0,0,$src_info[0],$src_info[1]);
break;
default :
//左下角
imagecopy($dst_im,$src_im,10,$dst_info[1]-$src_info[1]-10,0,0,$src_info[0],$src_info[1]);
}
//保存图片
switch ($dst_info[2]){
case 1: imagegif($dst_im,$dst);break;
case 2: imagejpeg($dst_im,$dst);break;
case 3: imagepng($dst_im,$dst);break;
case 6: imagewbmp($dst_im,$dst);break;
default:
die("不支持的文件类型2");exit;
}
imagedestroy($dst_im);
imagedestroy($src_im);
}