兼容性比较好的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下将多个数组合并成一个数组的方法与实例代码
Feb 03 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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实现二进制和文本相互转换的方法
2015/04/18 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
php实现微信公众号无限群发
2015/10/11 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
python模块restful使用方法实例
2013/12/10 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python矩阵的转置和逆转实例
2018/12/12 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
实验教师岗位职责
2014/02/13 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
聘任书模板
2014/03/29 职场文书
商场主管竞聘书
2014/03/31 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
Go语言grpc和protobuf
2022/04/13 Golang