温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

利用PHP怎么为图片加水印

发布时间:2021-02-03 12:41:36 阅读:148 作者:Leah 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

利用PHP怎么为图片加水印?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

具体如下:

<?php
echo img_water_mark("2008112023204423477802.gif""copyImg.png"$savepath=null$savename="123.gif"$positon=2$alpha=60);

function img_water_mark($srcImg$waterImg$savepath=null$savename=null$positon=5$alpha=30)
{
  $temp pathinfo($srcImg);
  $name $temp['basename'];
  $path $temp['dirname'];
  $exte $temp['extension'];
  $savename $savename $savename $name;
  $savepath $savepath $savepath $path;
  $savefile $savepath .'/'$savename;
  $srcinfo = @getimagesize($srcImg);
  if (!$srcinfo) {
    return -1//原文件不存在
  }
  $waterinfo = @getimagesize($waterImg);
  if (!$waterinfo) {
    return -2//水印图片不存在
  }
  $srcImgObj image_create_from_ext($srcImg);
  if (!$srcImgObj) {
    return -3//原文件图像对象建立失败
  }
  $waterImgObj image_create_from_ext($waterImg);
  if (!$waterImgObj) {
    return -4//水印文件图像对象建立失败
  }
  switch ($positon) {
  //1顶部居左
  case 1$x=$y=0break;
  //2顶部居右
  case 2$x $srcinfo[0]-$waterinfo[0]; $y 0break;
  //3居中
  case 3$x = ($srcinfo[0]-$waterinfo[0])/2$y = ($srcinfo[1]-$waterinfo[1])/2break;
  //4底部居左
  case 4$x 0$y $srcinfo[1]-$waterinfo[1]; break;
  //5底部居右
  case 5$x $srcinfo[0]-$waterinfo[0]; $y $srcinfo[1]-$waterinfo[1]; break;
  default$x=$y=0;
  }
  imagecopymerge($srcImgObj$waterImgObj$x$y00$waterinfo[0], $waterinfo[1], $alpha);
  switch ($srcinfo[2]) {
  case 1imagegif($srcImgObj$savefile); break;
  case 2imagejpeg($srcImgObj$savefile); break;
  case 3imagepng($srcImgObj$savefile); break;
  defaultreturn -5//保存失败
  }
  imagedestroy($srcImgObj);
  imagedestroy($waterImgObj);
  return $savefile;
}
function image_create_from_ext($imgfile)
{
  $info getimagesize($imgfile);
  $im null;
  switch ($info[2]) {
  case 1$im=imagecreatefromgif($imgfile); break;
  case 2$im=imagecreatefromjpeg($imgfile); break;
  case 3$im=imagecreatefrompng($imgfile); break;
  }
  return $im;
}
?>

看完上述内容,你们掌握利用PHP怎么为图片加水印的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×