兼容性比较好的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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
PHP学习 运算符与运算符优先级
Jun 15 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 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/11/28 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
webpack优化的深入理解
2018/12/10 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
python计算无向图节点度的实例代码
2019/11/22 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
python如何调用php文件中的函数详解
2020/12/29 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
端午节演讲稿
2014/05/23 职场文书
商业门面租房协议书
2014/11/25 职场文书
大学生就业意向书
2015/05/11 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫