利用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中利用XML技术构造远程服务(上)
Oct 09 PHP
Discuz 模板引擎的封装类代码
Jul 18 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 PHP
php自定义错误处理用法实例
Mar 20 PHP
PHP Opcache安装和配置方法介绍
May 28 PHP
php中Snoopy类用法实例
Jun 19 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
thinkphp5实现无限级分类
Feb 18 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 PHP
PHP调用接口API封装的例子
Oct 11 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
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
php正则表达匹配中文问题分析小结
2012/03/25 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
Python获取时间戳代码实例
2019/09/24 Python
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
写出一个方法实现冒泡排序
2016/07/08 面试题
业务代表的岗位职责
2013/11/16 职场文书
十佳大学生事迹材料
2014/01/29 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
学术会议主持词
2014/03/17 职场文书
家长对学生的评语
2014/04/18 职场文书
篮球社团活动总结
2014/06/27 职场文书
政协会议宣传标语
2014/10/09 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
Python matplotlib绘制雷达图
2022/04/13 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers