兼容性最强的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加MYSQL服务器
Oct 09 PHP
一个PHP日历程序
Dec 06 PHP
php+mysql分页代码详解
Mar 27 PHP
php上的memcache和memcached两个pecl库
Mar 29 PHP
检测png图片是否完整的php代码
Sep 06 PHP
PHP插入排序实现代码
Apr 04 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
php实现上传图片文件代码
Jul 19 PHP
php Session无效分析资料整理
Nov 29 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 PHP
TP5框架实现的数据库备份功能示例
Apr 05 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
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
多种方法实现JS动态添加事件
2013/11/01 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
理解Python中函数的参数
2015/04/27 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
为什么称python为胶水语言
2020/06/16 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
教师师德反思材料
2014/02/15 职场文书
实习指导老师评语
2014/04/26 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
社会学专业求职信
2014/07/17 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
2019学校运动会开幕词
2019/05/13 职场文书
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle