兼容性最强的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 相关文章推荐
一段php加密解密的代码
Jul 16 PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
php获取当月最后一天函数分享
Feb 02 PHP
php中instanceof 与 is_a()区别分析
Mar 03 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
thinkPHP5分页功能实现方法分析
Oct 25 PHP
php读取本地json文件的实例
Mar 07 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 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
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
python生成指定尺寸缩略图的示例
2014/05/07 Python
Python3.x中自定义比较函数
2015/04/24 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
文职个人求职信范文
2013/09/23 职场文书
财务会计专业应届毕业生求职信
2013/10/18 职场文书
终止劳动合同协议书
2014/04/14 职场文书
合作经营协议书
2014/04/17 职场文书
趣味运动会策划方案
2014/06/02 职场文书
计算机网络专业求职信
2014/06/05 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python