兼容性最强的PHP生成缩略图的函数代码(修改版)


Posted in PHP onJanuary 18, 2011
function ImageResize($srcFile,$toW,$toH,$toFile="") 
{ 
if($toFile==""){ $toFile = $srcFile; } 
$info = ""; 
$data = GetImageSize($srcFile,$info); 
switch ($data[2]) 
{ 
case 1: 
if(!function_exists("imagecreatefromgif")){ 
echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!<a href='javascript:go(-1);'>返回</a>"; 
exit(); 
} 
$im = ImageCreateFromGIF($srcFile); 
break; 
case 2: 
if(!function_exists("imagecreatefromjpeg")){ 
echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!<a href='javascript:go(-1);'>返回</a>"; 
exit(); 
} 
$im = ImageCreateFromJpeg($srcFile); 
break; 
case 3: 
$im = ImageCreateFromPNG($srcFile); 
break; 
} 
$srcW=ImageSX($im); 
$srcH=ImageSY($im); 
$toWH=$toW/$toH; 
$srcWH=$srcW/$srcH; 
if($toWH<=$srcWH){ 
$ftoW=$toW; 
$ftoH=$ftoW*($srcH/$srcW); 
} 
else{ 
$ftoH=$toH; 
$ftoW=$ftoH*($srcW/$srcH); 
} 
if($srcW>$toW||$srcH>$toH) 
{ 
if(function_exists("imagecreatetruecolor")){ 
@$ni = ImageCreateTrueColor($ftoW,$ftoH); 
if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 
else{ 
$ni=ImageCreate($ftoW,$ftoH); 
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 
} 
}else{ 
$ni=ImageCreate($ftoW,$ftoH); 
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 
} 
if(function_exists('imagejpeg')) ImageJpeg($ni,$toFile); 
else ImagePNG($ni,$toFile); 
ImageDestroy($ni); 
} 
ImageDestroy($im); 
}
PHP 相关文章推荐
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
php开发工具之vs2005图解
Jan 12 PHP
PHP的autoload自动加载机制使用说明
Dec 28 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
php利用cookies实现购物车的方法
Dec 10 PHP
php的ddos攻击解决方法
Jan 08 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
php封装单文件上传到数据库(路径)
Oct 15 PHP
php抽象类和接口知识点整理总结
Aug 02 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
discuz的php防止sql注入函数
Jan 17 #PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 #PHP
php短域名转换为实际域名函数
Jan 17 #PHP
PHP学习笔记之三 数据库基本操作
Jan 17 #PHP
PHP学习笔记之二
Jan 17 #PHP
PHP学习笔记之一
Jan 17 #PHP
php下连接mssql2005的代码
Jan 17 #PHP
You might like
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
python encode和decode的妙用
2009/09/02 Python
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
css3中transition属性详解
2014/09/02 HTML / CSS
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
《金钱的魔力》教学反思
2014/02/24 职场文书
学习保证书范文
2014/04/30 职场文书
激励员工的口号
2014/06/16 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
2015年团支部工作总结
2015/04/03 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
React列表栏及购物车组件使用详解
2021/06/28 Javascript