兼容性最强的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 相关文章推荐
增加反向链接的101个方法 站长推荐
Jan 31 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
php全角字符转换为半角函数
Feb 07 PHP
php删除数组元素示例分享
Feb 17 PHP
将php数组输出html表格的方法
Feb 24 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
ThinkPHP数据操作方法总结
Sep 28 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
微信自定义菜单的创建/查询/取消php示例代码
Aug 05 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 29 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
PHP6 mysql连接方式说明
2009/02/09 PHP
php常用Stream函数集介绍
2013/06/24 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
带你认识Django
2019/01/15 Python
numpy基础教程之np.linalg
2019/02/12 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
详解python tcp编程
2020/08/24 Python
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
培训主管的岗位职责
2013/11/23 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
文明工地标语
2014/06/16 职场文书
人口与计划生育责任书
2015/05/09 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书