兼容性比较好的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代码
Apr 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
php db类库进行数据库操作
Mar 19 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
PHP实现批量删除(封装)
Apr 28 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
php获取是星期几的的一些常用姿势
Dec 15 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服务器实现多session并发运行
2006/10/09 PHP
php中的观察者模式
2010/03/24 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
javascript关于继承解析
2016/05/10 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
自我评价中英文语句
2013/11/30 职场文书
写给女生的道歉信
2014/01/08 职场文书
教师个人剖析材料
2014/02/05 职场文书
岗位职责怎么写
2014/03/14 职场文书
保研推荐信
2014/05/09 职场文书
员工合理化建议书
2014/05/19 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
Redis高并发缓存架构性能优化
2022/05/15 Redis