兼容性最强的PHP生成缩略图的函数代码(修改版)


Posted in PHP onJanuary 18, 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数字格式化
Dec 06 PHP
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
php array的学习笔记
May 16 PHP
php 注册时输入信息验证器的实现详解
Jul 05 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
yii操作cookie实例简介
Jul 09 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
PHP输入输出流学习笔记
May 12 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
php实现文件预览功能
May 23 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
PHP chunk_split()函数讲解
Feb 12 PHP
discuz的php防止sql注入函数
Jan 17 #PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 #PHP
php短域名转换为实际域名函数
Jan 17 #PHP
PHP学习笔记之三 数据库基本操作
Jan 17 #PHP
PHP学习笔记之二
Jan 17 #PHP
PHP学习笔记之一
Jan 17 #PHP
php下连接mssql2005的代码
Jan 17 #PHP
You might like
JAVASCRIPT对象及属性
2007/02/13 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
Jquery读取URL参数小例子
2013/08/30 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
Python装饰器用法实例总结
2018/05/26 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
简单了解django索引的相关知识
2019/07/17 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
销售顾问岗位职责
2014/02/25 职场文书
消防安全责任书范本
2014/04/15 职场文书
军训口号
2014/06/13 职场文书
精神病医院见习报告
2014/11/03 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
Python内置数据结构列表与元组示例详解
2021/08/04 Python
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技