兼容性最强的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&amp;java(三)
Oct 09 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
解析PHP 5.5 新特性
Jul 02 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 PHP
YII2框架中behavior行为的理解与使用方法示例
Mar 13 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
在Django同1个页面中的多表单处理详解
2017/01/25 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
建筑工程毕业生自我鉴定
2014/01/14 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
社区志愿者活动总结
2014/06/26 职场文书
中考学习决心书
2015/02/04 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
贫困证明怎么写
2015/06/16 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
Pandas加速代码之避免使用for循环
2021/05/30 Python