兼容性比较好的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 相关文章推荐
加速XP搜索功能堪比vista
Mar 22 PHP
PHP源码之explode使用说明
Aug 05 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
PHP邮件群发机实现代码
Feb 16 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
php操作access数据库的方法详解
Feb 22 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
php爬取天猫和淘宝商品数据
Feb 23 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 短链接算法收集与分析
2011/12/30 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
jQuery事件对象总结
2016/10/17 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
python获取本地计算机名字的方法
2015/04/29 Python
Python自定义一个异常类的方法
2019/06/27 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
百丽国际旗下购物网站:优购
2017/02/28 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
汽车销售求职自荐信
2013/10/01 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
商务日语专业自荐信
2014/04/17 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
工作经历证明书范文
2014/11/02 职场文书
汽车转让协议书
2015/01/29 职场文书
技术负责人岗位职责
2015/02/10 职场文书
个人工作能力自我评价
2015/03/05 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
java实现对Hadoop的操作
2021/07/01 Java/Android
sql server 累计求和实现代码
2022/02/28 SQL Server