利用PHP实现图片等比例放大和缩小的方法详解


Posted in PHP onJune 06, 2013
    function resizeimage($srcfile,$mySize){
    $size=getimagesize($srcfile);
    switch($size[2]){
    case 1:
    $img=imagecreatefromgif($srcfile);
    break;
    case 2:
    $img=imagecreatefromjpeg($srcfile);
    break;
    case 3:
    $img=imagecreatefrompng($srcfile);
    break;
    }
    //源图片的宽度和高度
    $oldImg['w']=imagesx($img);
    $oldImg['h']=imagesy($img);
    if ($oldImg['w']<=$mySize['w'] && $oldImg['h']<156){
    $rate=1;
    }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']<$mySize['h']){
    $rate=$mySize['w']/$oldImg['w'];
    }elseif ($oldImg['w']<$mySize['w'] && $oldImg['h']>$mySize['h']){
    $rate=$mySize['h']/$oldImg['h'];
    }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']>$mySize['h']){
    $rate1=$mySize['w']/$oldImg['w'];
    $rate2=$mySize['h']/$oldImg['h'];
    if ($rate1>$rate2){$rate=$rate2;}else{$rate=$rate1;}
    }
    $newImg['w']=$oldImg['w']*$rate;
    $newImg['h']=$oldImg['h']*$rate;
    return "width=".$newImg['w']." height=".$newImg['h'];
    }

应用实例
   $mySize=array('w'=>143,'h'=>156);
   $imgSize=resizeimage("22.jpg",$mySize);
   echo "<img src=\"22.jpg\"".resizeimage("22.jpg",$mySize)."/>";
PHP 相关文章推荐
PHP脚本的10个技巧(1)
Oct 09 PHP
php读取30天之内的根据算法排序的代码
Apr 06 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
PHP小教程之实现链表
Jun 09 PHP
php中的ini配置原理详解
Oct 14 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
PHP实现原比例生成缩略图的方法
Feb 03 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 PHP
PHP删除目录及目录下所有文件的方法详解
Jun 06 #PHP
解决PHP超大文件下载,断点续传下载的方法详解
Jun 06 #PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 #PHP
php IP转换整形(ip2long)的详解
Jun 06 #PHP
php全局变量和类配合使用深刻理解
Jun 05 #PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 #PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 #PHP
You might like
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
推荐11个实用Python库
2015/01/23 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
python实现mean-shift聚类算法
2020/06/10 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
最新教师自我评价分享
2013/11/12 职场文书
如何写求职信
2014/05/24 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
毕业横幅标语
2014/10/08 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis