兼容性比较好的PHP生成缩略图的代码


Posted in PHP onJanuary 12, 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调用Java对象的方法
Oct 09 PHP
扩展你的 PHP 之入门篇
Dec 04 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
php实现文件下载代码分享
Aug 19 PHP
thinkphp常见路径用法分析
Dec 02 PHP
php删除指定目录的方法
Apr 03 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 #PHP
PHP日期处理函数 整型日期格式
Jan 12 #PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 #PHP
DEDE采集大师官方留后门的删除办法
Jan 08 #PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 #PHP
PHP备份/还原MySQL数据库的代码
Jan 06 #PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 #PHP
You might like
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
python redis存入字典序列化存储教程
2020/07/16 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
人力资源专员岗位职责
2014/01/30 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
计划生育工作汇报
2014/10/28 职场文书
失恋33天观后感
2015/06/11 职场文书
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL