兼容性比较好的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中的Class的几点个人看法
Oct 09 PHP
php 变量定义方法
Jun 14 PHP
php 数学运算验证码实现代码
Oct 11 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
php字符串截取的简单方法
Jul 04 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
Mac系统完美安装PHP7详细教程
Jun 06 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 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 已经成熟
2006/12/04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
Python编程实现的简单Web服务器示例
2017/06/22 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
Champion官网:美国冠军运动服装
2017/01/25 全球购物
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
运动会通讯稿200字
2014/02/16 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
主要领导对照检查材料
2014/08/26 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers