兼容性最强的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 相关文章推荐
中英文字符串翻转函数
Dec 09 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
php实现的数组转xml案例分析
Sep 28 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 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编程效率 引入缓存机制提升性能
2010/02/15 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
jQuery的一些注意
2006/12/06 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
Numpy之文件存取的示例代码
2018/08/03 Python
python机器人运动范围问题的解答
2019/04/29 Python
pycharm导入源码的具体步骤
2020/08/04 Python
python中xlutils库用法浅析
2020/12/29 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
花卉与景观设计系大学生求职信
2013/10/01 职场文书
同事打架检讨书
2014/02/04 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
大学生团员个人总结
2015/02/14 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫