兼容性最强的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+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
PHP通用分页类page.php[仿google分页]
Aug 31 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 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
构建简单的Webmail系统
2006/10/09 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python字符串切片操作知识详解
2016/03/28 Python
Python用threading实现多线程详解
2017/02/03 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python 用下标截取字符串的实例
2018/12/25 Python
基于python实现从尾到头打印链表
2019/11/02 Python
机电专业毕业生推荐信
2013/11/10 职场文书
师德师风剖析材料
2014/09/30 职场文书
卖房授权委托书样本
2014/10/05 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
优秀创业计划书分享
2019/07/19 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
解决golang在import自己的包报错的问题
2021/04/29 Golang