兼容性最强的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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
解析php php_openssl.dll的作用
Jul 01 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
Yii数据库缓存实例分析
Mar 29 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
PHP 图片处理
Sep 16 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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实现的简易扫雷游戏实例
2015/07/09 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
显示、隐藏密码
2006/07/01 Javascript
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
Python中线程编程之threading模块的使用详解
2015/06/23 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Django 大文件下载实现过程解析
2019/08/01 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
应届毕业生求职自荐书
2014/01/03 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
解除处分决定书
2015/06/25 职场文书
2016春季运动会前导词
2015/11/25 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS