兼容性比较好的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写的MySQL数据库用户认证系统代码
Mar 22 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
如何用php获取文件名后缀
Jun 09 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
Nginx+php配置文件及原理解析
Dec 09 PHP
php中yar框架实例用法讲解
Dec 27 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
PHP5函数小全(分享)
2013/06/06 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
了解重排与重绘
2019/05/29 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
Python中处理unchecked未捕获异常实例
2015/01/17 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
set在python里的含义和用法
2019/06/24 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
主治医师岗位职责
2013/12/10 职场文书
英文自荐信常用句子
2014/03/26 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
葬礼主持词
2015/07/02 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python