兼容性最强的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 insert语法详解
Jun 07 PHP
php cookis创建实现代码
Mar 16 PHP
PHP Stream_*系列函数
Aug 01 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
tp5.1 框架查询表达式用法详解
May 25 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
php商品对比功能代码分享
2015/09/24 PHP
javascript Excel操作知识点
2009/04/24 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
vue实现商城上货组件简易版
2017/11/27 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
小结Python用fork来创建子进程注意事项
2014/07/03 Python
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
使用Python写个小监控
2016/01/27 Python
python的range和linspace使用详解
2019/11/27 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
python urllib和urllib3知识点总结
2021/02/08 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
意向书范文
2014/03/31 职场文书
自强之星事迹材料
2014/05/12 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
公司备用金管理制度
2015/08/04 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
为什么RedisCluster设计成16384个槽
2021/09/25 Redis