PHP实现图片的等比缩放

算法映星使
• 阅读 203

PHP实现图片的等比缩放

本文主要介绍了PHP实现图片的等比缩放功能,结合实例形式分析了php图片等比例缩放操作技巧
等比缩放函数(以保存的方式实现)
代码:
[PHP] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
/**

  • 等比缩放函数(以保存的方式实现)
  • @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/logo.png",200,200,"ss_");
?>
测试效果:
PHP实现图片的等比缩放
更多技术资讯可关注:gzitcast

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
ImageMagick 的PHP(图片处理)
这次的任务是要做一个图片变成圆形的任务,将上传的图片切割成固定大小的圆形。首先很屌丝的在自己的windows上安装imagemagick,很好TMD整了老子一上午发现死活搞不定,phpinfo里面死活看不到php\_imagick这个扩展,很好我放弃,线上有一个测试环境是linux的我TM用测试环境搞,不用本地的还不行?这里有个帖子http://w
Stella981 Stella981
3年前
Linux下php+imagemagick的图片处理环境安装(支持webp格式)
ImageMagick是一款功能强大的图片处理工具包,很多互联网应用中都会涉及到图片处理工作,比如切割、缩放、水印、格式转换等。ImageMagick就是一个理想的工具包。这里主要记录一下LinuxRedHat2.6.18下的环境安装过程。安装基础依赖:先检查一些基本的图片支持包是否已经安装,比如jpge和pngRedHat
Stella981 Stella981
3年前
PHP imagick 实现 PDF 转 图片
1、ImageMagick安装官网(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.imagemagick.org%2Fscript%2Finstallsource.php)tarzxvfImageMagick.tar.gzC/usr/lo
Wesley13 Wesley13
3年前
PHP之微信JSSDK图片上传预览下载到服务器
1.投票报名!PHP之微信JSSDK图片上传预览下载到服务器(http://www.zhimengzhe.com/d/file/shujuku/rontcpmvppy.png)主要实现报名功能(1)form表单布局<sectionclass"content"<divid"errormsg"
Stella981 Stella981
3年前
LAMP架构之php禁止解析、user_agent限定及php配置文件常规设置
本文索引:禁止某目录PHP解析限制user\_agentPHP相关配置查看PHP配置文件的位置安全函数设定设置时区错误信息日志安全相关的参数禁止某目录PHP解析某些目录可以上传图片等文件,如果不设置禁止PHP
Wesley13 Wesley13
3年前
Android ScaleDrawable
顾名思义,Android ScaleDrawable实现一个drawable的缩放。写一个例子。一个线性布局,垂直放几个ImageView,然后依次缩放若干个ScaleDrawable。布局文件:<?xmlversion"1.0"encoding"utf8"?<LinearLayoutxmlns:android"
Wesley13 Wesley13
3年前
PHP实现图片(文件)上传
这几天整理做过的php项目,感觉这个经常会用到,传上来共享一下咯首先,前端界面1、表单的首行需要加上enctype"multipart/formdata",需要上传的图片必须设置type"file"表示选择文件<formid"img_form"method"post"class"formhorizontal"r
Stella981 Stella981
3年前
HarmonyOS三方件开发指南(5)——Photoview组件
PhotoView使用说明1\. PhotoView功能介绍1.1组件介绍:    PhotoView是一个继承自Image的组件,不同之处在于:它可以进行图击放大功能,手势缩放功能(暂无真机,无法测试)。1.2手机模拟器上运行效果:原始图片效果:!【软通动力】HarmonyOS
Stella981 Stella981
3年前
PHP+jQuery寥寥几行代码轻松实现百度搜索那样的无刷新PJAX的分页列表和导航链接
!(https://static.oschina.net/uploads/space/2016/1208/171419_U00R_561214.png)PHP寥寥几行代码轻松实现百度搜索那样的分页列表和导航链接,某些语言的拥趸哭晕在厕所.<?php$apparray('db_prefix''
Stella981 Stella981
3年前
Fastdfs安装_nginx进行图片动态压缩
说明1.因为上传的图片较大,部分页面直接引用图片地址,则造成页面加载缓慢问题。2.考虑到服务器空间问题,我们没有进行上传缩略图。仅仅是上传了原图3.为了优化页面加载图片的时间问题,所以对图片进行动态缩放。PS:如果访问量较高,建议进行存储缩略图图片缩放采用nginx的http\_image\_filter\_module
公孙晃 公孙晃
2年前
Mac端图像浏览、编辑工具:EdgeView 4 for Mac
EdgeView4是一款Mac电脑上的图像浏览和编辑软件。支持多种格式的图片文件,包括JPEG、PNG、GIF、BMP、TIFF等,并提供如缩放、裁剪、旋转、调整亮度、对比度等编辑功能...