兼容性比较好的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 相关文章推荐
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
php错误级别的设置方法
Jun 17 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
php readfile()修改文件上传大小设置
Aug 11 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
PHP中SESSION过期设置
Mar 09 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
使用 MySQL Date/Time 类型
2008/03/26 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
jQuery使用方法
2017/02/04 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
python常用数据重复项处理方法
2019/11/22 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
opencv实现图像平移效果
2021/03/24 Python
暑期培训随笔感言
2014/03/10 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
主婚人致辞精选
2015/07/28 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis