兼容性比较好的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的知识
Nov 17 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
php自定义时间转换函数示例
Dec 07 PHP
PHP children()函数讲解
Feb 03 PHP
php+Ajax无刷新验证用户名操作实例详解
Mar 04 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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&amp;mysql(三)
2006/10/09 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
Python编写百度贴吧的简单爬虫
2015/04/02 Python
浅谈python对象数据的读写权限
2016/09/12 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
浅谈Python协程
2020/06/17 Python
利用Python优雅的登录校园网
2020/10/21 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
幼儿园教师奖惩制度
2014/02/01 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
保洁员岗位职责
2015/02/04 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android