兼容性最强的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 email邮箱正则
Oct 08 PHP
php动态生成JavaScript代码
Mar 09 PHP
php array_search() 函数使用
Apr 13 PHP
PHP $_FILES函数详解
Mar 09 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
php中simplexml_load_file函数用法实例
Nov 12 PHP
PHP7之Mongodb API使用详解
Dec 26 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 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 IPV6正则表达式验证代码
2010/02/16 PHP
php计算年龄精准到年月日
2015/11/17 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
python实现将内容分行输出
2015/11/05 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
python序列化与数据持久化实例详解
2019/12/20 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
新大陆软件面试题
2016/11/24 面试题
机电专业体育教师求职信
2013/09/21 职场文书
高分子材料与工程专业推荐信
2013/12/01 职场文书
大学校庆邀请函
2014/01/11 职场文书
一年级学生期末评语
2014/04/21 职场文书
学雷锋日活动总结
2015/02/06 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL