1. <?php
  2. //图像等比例缩放函数
  3. /**
  4. *等比例缩放函数(以保存新图片的方式实现)
  5. *@param string $picname 被缩放的处理图片源
  6. *@param int $maxx 缩放后图片的最大宽度
  7. *@param int $maxy 缩放后图片的最大高度
  8. *@param string $pre 缩放后图片的前缀名
  9. *@return $string 返回后的图片名称() 如a.jpg->s.jpg
  10. *
  11. **/
  12. function imageUpdatesize($picname,$maxx=100,$maxy=100,$pre="s_"){
  13. $info=getimageSize($picname);//获取图片的基本信息
  14. $w=$info[0];//获取宽度
  15. $h=$info[1];//获取高度
  16. //获取图片的类型并为此创建对应图片资源
  17. switch($info[2]){
  18. case 1://gif
  19. $im=imagecreatefromgif($picname);
  20. break;
  21. case 2://jpg
  22. $im=imagecreatefromjpeg($picname);
  23. break;
  24. case 3://png
  25. $im=imagecreatefrompng($picname);
  26. break;
  27. default:
  28. die("图像类型错误");
  29. }
  30. //计算缩放比例
  31. if(($maxx/$w)>($maxy/$h)){
  32. $b=$maxy/$h;
  33. }else{
  34. $b=$maxx/$w;
  35. }
  36. //计算出缩放后的尺寸
  37. $nw=floor($w*$b);
  38. $nh=floor($h*$b);
  39. //创建一个新的图像源(目标图像)
  40. $nim=imagecreatetruecolor($nw,$nh);
  41. //执行等比缩放
  42. imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);
  43. //输出图像(根据源图像的类型,输出为对应的类型)
  44. $picinfo=pathinfo($picname);//解析源图像的名字和路径信息
  45. $newpicname=$picinfo["dirname"]."/".$pre.$picinfo["basename"];
  46. switch($info[2]){
  47. case 1:
  48. imagegif($nim,$newpicname);
  49. break;
  50. case 2:
  51. imagejpeg($nim,$newpicname);
  52. break;
  53. case 3:
  54. imagepng($nim,$newpicname);
  55. break;
  56.  
  57. }
  58. //释放图片资源
  59. imagedestroy($im);
  60. imagedestroy($nim);
  61. //返回结果
  62. return $newpicname;
  63. }
  64. // 测试成功
  65. echo imageUpdatesize("images/qie.jpg",150,150,ss_); // 返回的结果为 images/ss_qie.jpg
  66. ?>

图像等比例缩放的函数封装(PHP)的更多相关文章

  1. PHP.18-图片等比例缩放

    图片等比例缩放 自定义函数ImageUpdateSize($pricname, $maxx, $maxy, $pre) 1.$pricname:被缩放的图片源(路径):2.$maxx,$maxy:缩放 ...

  2. php 常见图片处理函数封装

    <?php /** * 常见图像处理函数的封装 */ class Image{ private $info=[]; private $width;//原始图片宽度 private $height ...

  3. php函数封装

    这是一些自定义封装的函数类,调用起来很方便,以后会有更多的封装函数更新! // 弹框跳转function alert($msg,$url=''){ echo "<script>& ...

  4. WinForm版图像编辑小程序(实现图像拖动、缩放、旋转、抠图)

    闲暇之余,开发一个图片编辑小程序.程序主要特点就是可方便的对多个图像编辑,实现了一些基本的操作.本文主要介绍一下程序的功能.设计思路. 执行程序 下载地址: 百度网盘.https://pan.baid ...

  5. 理解CSS3中的background-size(对响应性图片等比例缩放)

    理解CSS3中的background-size(对响应性图片等比例缩放) 阅读目录 background-size的基本属性 给图片设置固定的宽度和高度的 固定宽度400px和高度200px-使用ba ...

  6. php图片等比例缩放

    新建文件index.php,需要在统计目录下有个图片为q.jpg(可根据源码进行更改图片的名称) 源代码如下: <?php$filename="q.jpg"; $per=0. ...

  7. CSS3中的background-size(对响应性图片等比例缩放)

    background-size的基本属性 background-size: 可以设定背景图像的尺寸,该属性是css3中的,在移动端使用的地方很多,比如最常见的地方在做响应性布局的时候,比如之前做的项目 ...

  8. PHP按最大宽高等比例缩放图片类

    本来用phpthumb来缩略图片是十分方便的,但是最近在sae上写项目发现phpthumb在sae上保存文件时会出问题,想来实现一个简单的按最大宽高等比例缩放图片类也并不困难,于是便自己写了一个方便修 ...

  9. opencv 图像仿射变换 计算仿射变换后对应特征点的新坐标 图像旋转、缩放、平移

    常常需要最图像进行仿射变换,仿射变换后,我们可能需要将原来图像中的特征点坐标进行重新计算,获得原来图像中例如眼睛瞳孔坐标的新的位置,用于在新得到图像中继续利用瞳孔位置坐标. 仿射变换在:http:// ...

随机推荐

  1. Fluent Nhibernate Mapping for Sql Views

    Views are mapped the same way tables are mapped except that you should put Readonly() in the mapping ...

  2. ScrollView 设置滚动是否可用

    extends:http://stackoverflow.com/questions/5763304/disable-scrollview-programmatically , http://stac ...

  3. gradle下的第一个SpringMVC应用

    新建gradle project 缺少了很多文件夹和文件,我们自己补充,补充完的目录如下: HelloController: package controller; import javax.serv ...

  4. Mssql备份失败

    Mssql备份失败出现如下提示 备份时先删除默认的备份设备,自己选择路径

  5. java 常见几种发送http请求案例

    import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java ...

  6. Page Control

  7. redis cluster 集群畅谈(二)

    上一篇http://www.cnblogs.com/qinyujie/p/9029482.html, 主要讲解 redis cluster 集群 搭建,本篇主要讲解实验多master写入.读写分离.实 ...

  8. Unknown Treasure---hdu5446(卢卡斯+中国剩余定理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5446 C(n, m) % (p1*p2*p3*...*pk)的值 其实这个就是中国剩余定理最后算出结果 ...

  9. 数据库SQL优化大总结之百万级数据库优化方案(转)

    add by zhj: 作者没有指定是哪个数据库,这只是一个近似通用的总结.对于某个特定的数据库,有些条目可能并不适用. 原文:http://www.cnblogs.com/yunfeifei/p/3 ...

  10. linux IO多路复用POLL机制深入分析

    POLL机制的作用这里就不进行介绍,根据linux man手册,解释为在一个文件描述符上等待某个事件.按照抽象一点的理解,当某个事件被触发(条件被满足),文件描述符变为有状态,那么用户空间可以根据此进 ...