兼容性比较好的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 17 PHP
从wamp到xampp的升级之路
Apr 08 PHP
php源码分析之DZX1.5加密解密函数authcode用法
Jun 17 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP面向对象详解(三)
Dec 07 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
PHP CURL使用详解
Mar 21 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
使用laravel的migrate创建数据表的方法
Sep 30 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
模仿OSO的论坛(二)
2006/10/09 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
php多文件上传下载示例分享
2014/02/20 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
Python 变量的创建过程详解
2019/09/02 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
代理商会议邀请函
2014/01/27 职场文书
环保建议书作文
2014/03/12 职场文书
自强之星事迹材料
2014/05/12 职场文书
2014年党员整改措施
2014/10/24 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
十二生肖观后感
2015/06/12 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫