• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP实现图片的等比缩放和Logo水印功能的方法

php 搞代码 4年前 (2022-01-22) 23次浏览 已收录 0个评论

这篇文章主要介绍了PHP实现图片的等比缩放和Logo水印功能,结合实例形式分析了php图片等比例缩放及logo水印添加操作技巧,需要的朋友可以参考下

具体如下:

/** * 等比缩放函数(以保存的方式实现) * @param string $picname 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg */function imageUpdateSize($picname,$maxx=100,$maxy=100,$pre="s_"){  $info = getimageSize($picname); //获取图片的基本信息  $w = $info[0];//获取宽度  $h = $info[1];//获取高度  //获取图片的类型并为此创建对应图片资源  switch($info[2]){    case 1: //gif      $im = imagecreatefromgif($picname);      break;    case 2: //jpg      $im = imagecreatefromjpeg($picname);      break;    case 3: //png      $im = imagecreatefrompng($picname);      break;    default:      die("图片类型错误!");  }  //计算缩放比例  if(($maxx/$w)>($maxy/$h)){    $b = $maxy/$h;  }else{    $b = $maxx/$w;  }  //计算出缩放后的尺寸  $nw = floor($w*$b);  $nh = floor($h*$b);  //创建一个新的图像源(目标图像)  $nim = imagecreatetruecolor($nw,$nh);  //执行等比缩放  imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);  //输出图像(根据源图像的类型,输出为对应的类型)  $picinfo = pathinfo($picname);//解析源图像的名字和路径信息  $newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];  switch($info[2]){    case 1:      imagegif($nim,$newpicname);      break;    case 2:      imagejpeg($nim,$newpicname);      break;    case 3:      imagepng($nim,$newpicname);      break;  }  //释放图片资源  imagedestroy($im);  imagedestroy($nim);  //返回结果  return $newpicname;}//测试://echo imageUpdateSize("./images/bg.jpg",200,200,"ss_"); // ./images/s_bg.jpg

/** * 为一张图片添加上一个logo图片水印(以保存的方式实现) * @param string $picname 被处理图片源 * @param string $logo 水印图片 * @param string $pre 处理后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg */function imageUpdateLogo($picname,$logo,$pre="n_"){  $picnameinfo = getimageSize($picname); //获取图片源的基本信息  $logoinfo = getimageSize($logo); //获取logo图片的基本信息  //var_dump($logoinfo);  //根据图片类型创建出对应的图片源  switch($picnameinfo[2]){    case 1: //gif      $im = imagecreatefromgif($picname);      break;    case 2: //jpg      $im = imagecreatefromjpeg($picname);      break;    case 3: //png      $im = imagecreatefrompng($picname);      break;    default:      die("图片类型错误!");  }  //根据logo图片类型创建出对应的图片源  switch($logoinfo[2]){    case 1: //gif      $logoim = imagecreatefromgif($logo);      break;    case 2: //jpg      $logoim = imagecreatefromjpeg($logo);      break;    case 3: //png      $logoim = imagecreatefrompng($logo);      break;    default:      die("logo图片类型错误!");  }  //执行图片水印处理  imagecopyresampled($im,$logoim,$picnameinfo[0]-$logoinfo[0],$picnameinfo[1]-$logoinfo[1],0,0,$logoinfo[0],$logoinfo[1],$logoinfo[0],$logoinfo[1]);  //输出图像(根据源图像的类型,输出为对应的类型)  $picinfo = pathinfo($picname);//解析源图像的名字和路径信息  $newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];  switch($picnameinfo[2]){    case 1:      imagegif($im,$newpicname);      break;    case 2:      imagejpeg($im,$newpicname);      break;    case 3:      imagepng($im,$newpicname);      break;  }  //释放图片资源  imagedestroy($im);  imagedestroy($logoim);  //返回结果  return $newpicname;}//测试echo imageUpdateLogo("./images/bg2.jpg","./images/s_1.png");

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关推荐:

php读取本地文件常用函数(fopen与file_get_contents)_php基础

PHP框架性能测试报告_php技巧

php读取本地文件常用函数(fopen与file_get_contents)_php基础

以上就是PHP@本文9来源gao($daima.com搞@代@#码8网^搞代gaodaima码实现图片的等比缩放和Logo水印功能的方法的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP实现图片的等比缩放和Logo水印功能的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址