兼容性最强的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 相关文章推荐
Discuz板块横排显示图片的实现方法
May 28 PHP
用php+javascript实现二级级联菜单的制作
May 06 PHP
PHP mkdir()定义和用法
Jan 14 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
php实现session自定义会话处理器的方法
Jan 27 PHP
PHP技术开发微信公众平台
Jul 22 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
php网页版聊天软件实现代码
Aug 12 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
Oct 07 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
什么是MVC,好东西啊
2007/05/03 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
jquery 使用简明教程
2014/03/05 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
Python实现的计算器功能示例
2018/04/26 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
python中的global关键字的使用方法
2019/08/20 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
Python新手如何理解循环加载模块
2020/05/29 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
中药专业自荐信范文
2014/03/18 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB