PHP图片等比缩放和增加Logo水印代码详解和注释
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP图片等比缩放和增加Logo水印代码详解和注释,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3806字,纯文字阅读大概需要6分钟。
内容图文
PHP图片等比缩放和增加Logo水印代码详解和注释//PHP图片的等比缩放和增加Logo水印 /** * 等比缩放函数(以保存的方式实现) * @param string $picName 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg */ function imageNewageUpdateSize($picName,$maxx=100,$maxy=100,$pre="s_"){ $imageNewageInfo = getimageNewageSize($picName); //获取图片的基本信息 $w = $imageNewageInfo[0];//获取宽度 $h = $imageNewageInfo[1];//获取高度 //获取图片的类型并为此创建对应图片资源 switch($imageNewageInfo[2]){ case 1: //gif $imageNew = imageNewagecreatefromgif($picName); break; case 2: //jpg $imageNew = imageNewagecreatefromjpeg($picName); break; case 3: //png $imageNew = imageNewagecreatefrompng($picName); break; default: die("图片类型错误!"); } //计算缩放比例 if(($maxx/$w)>($maxy/$h)){ $b = $maxy/$h; }else{ $b = $maxx/$w; } //计算出缩放后的尺寸 $nw = floor($w*$b); $nh = floor($h*$b); //创建一个新的图像源(目标图像) $nimageNew = imageNewagecreatetruecolor($nw,$nh); //执行等比缩放 imageNewagecopyresampled($nimageNew,$imageNew,0,0,0,0,$nw,$nh,$w,$h); //输出图像(根据源图像的类型,输出为对应的类型) $picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息 $newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"]; switch($imageNewageInfo[2]){ case 1: imageNewagegif($nimageNew,$newpicName); break; case 2: imageNewagejpeg($nimageNew,$newpicName); break; case 3: imageNewagepng($nimageNew,$newpicName); break; } //释放图片资源 imageNewagedestroy($imageNew); imageNewagedestroy($nimageNew); //返回结果 return $newpicName; } //调用 echo imageNewageUpdateSize("./imageNewages/leyangjun.jpg",400,400,"ss_"); //你自己要添加的图片 /** * 为一张图片添加上一个logo图片水印(以保存的方式实现) * @param string $picName 被处理图片源 * @param string $logo 水印图片 * @param string $pre 处理后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg */ function imageNewageUpdateLogo($picName,$logo,$pre="n_"){ $picNameimageNewageInfo = getimageNewageSize($picName); //获取图片源的基本信息 $logoimageNewageInfo = getimageNewageSize($logo); //获取logo图片的基本信息 //var_dump($logoimageNewageInfo); //根据图片类型创建出对应的图片源 switch($picNameimageNewageInfo[2]){ case 1: //gif $imageNew = imageNewagecreatefromgif($picName); break; case 2: //jpg $imageNew = imageNewagecreatefromjpeg($picName); break; case 3: //png $imageNew = imageNewagecreatefrompng($picName); break; default: die("图片类型错误!"); } //根据logo图片类型创建出对应的图片源 switch($logoimageNewageInfo[2]){ case 1: //gif $logoimageNew = imageNewagecreatefromgif($logo); break; case 2: //jpg $logoimageNew = imageNewagecreatefromjpeg($logo); break; case 3: //png $logoimageNew = imageNewagecreatefrompng($logo); break; default: die("logo图片类型错误!"); } //执行图片水印处理 源图的高-logo图的高 源图的宽-logo图的宽 imageNewagecopyresampled($imageNew,$logoimageNew,$picNameimageNewageInfo[0]-$logoimageNewageInfo[0],$picNameimageNewageInfo[1]-$logoimageNewageInfo[1],0,0,$logoimageNewageInfo[0],$logoimageNewageInfo[1],$logoimageNewageInfo[0],$logoimageNewageInfo[1]); //输出图像(根据源图像的类型,输出为对应的类型) $picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息 $newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"]; switch($picNameimageNewageInfo[2]){ case 1: imageNewagegif($imageNew,$newpicName); break; case 2: imageNewagejpeg($imageNew,$newpicName); break; case 3: imageNewagepng($imageNew,$newpicName); break; } //释放图片资源 imageNewagedestroy($imageNew); imageNewagedestroy($logoimageNew); //返回结果 return $newpicName; } //测试 //echo imageNewageUpdateLogo("./imageNewages/leyangjun.jpg","./imageNewages/logo.png"); //对应添加你的图片,和你的logo水印图片 OK
内容总结
以上是互联网集市为您收集整理的PHP图片等比缩放和增加Logo水印代码详解和注释全部内容,希望文章能够帮你解决PHP图片等比缩放和增加Logo水印代码详解和注释所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。