php getimagesize 上传图片的长度和宽度检测代码


Posted in PHP onMay 15, 2010

getimagesize — 取得图像大小
说明
array getimagesize ( string $filename [, array &$imageinfo ] )
getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 <IMG> 标记中的 height/width 文本字符串。
如果不能访问 filename 指定的图像或者其不是有效的图像,getimagesize() 将返回 FALSE 并产生一条 E_WARNING 级的错误。
Note: 对 JPC,JP2,JPX,JB2,XBM 和 WBMP 的支持自 PHP 4.3.2 起可用。对 SWC 的支持自 PHP 4.3.0 起可用。对 TIFF 的支持是 PHP 4.2.0 添加的。
Note: JPEG 2000 支持是 PHP 4.3.2 添加的。注意 JPC 和 JP2 可以有不同的色彩深度的成分。此情况下,“bits”的值是碰到的最高的位深度。此外,JP2 文件可能包含有多个 JPEG 2000 代码流,此情况下,getimagesize() 返回此文件顶层中碰到的第一个代码流的值。
Note: 本函数不需要 GD 图像库。
返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG 标记。
Example #1 getimagesize(文件)

<?php 
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); 
echo "<img src=\"img/flag.jpg\" $attr>"; 
?>

URL 支持是 PHP 4.0.5 添加的。
Example #2 getimagesize(URL)
<?php 
$size = getimagesize("https://3water.com/images/logo.gif"); 
// if the file name has space in it, encode it properly 
$size = getimagesize("http://www.example.com/gifs/lo go.gif"); 
?>

对于 JPG 图像,还会多返回两个索引:channels 和 bits。channels 对于 RGB 图像其值为 3,对于 CMYK 图像其值为 4。bits 是每种颜色的位数。
自 PHP 4.3.0 起,bits 和 channels 对于其它图像类型也存在。但是这些值可能会把人搞糊涂。例如,GIF 总是对每个像素使用 3 个 channel,但是对于动画 GIF 来说每个像素的位数无法通过全局颜色表计算出来。
某些格式可能不包含图像或者包含多个图像。此种情况下,getimagesize() 可能不能用来准确测定图像的大小。此时 getimagesize() 将返回零作为宽度和高度。
自 PHP 4.3.0 起,getimagesize() 还会返回额外的参数 mime,符合该图像的 MIME 类型。此信息可以用来在 HTTP Content-type 头信息中发送正确的信息:
Example #3 getimagesize() 和 MIME 类型
<?php 
$size = getimagesize($filename); 
$fp=fopen($filename, "rb"); 
if ($size && $fp) { 
header("Content-type: {$size['mime']}"); 
fpassthru($fp); 
exit; 
} else { 
// error 
} 
?>

可选的 imageinfo 参数允许从图像文件中提取一些扩展信息。目前,这将以一个关联数组返回不同的 JPG APP 标识。某些程序用这些 APP 标识来在图像中嵌入文本信息。一个非常常见的是 APP13 标识中嵌入的 IPTC » http://www.iptc.org/ 信息。可以用 iptcparse() 函数来将二进制的 APP13 标识解析为可读的信息。
Example #4 getimagesize() 返回 IPTC
<?php 
$size = getimagesize("testimg.jpg", &$info); 
if (isset($info["APP13"])) { 
$iptc = iptcparse($info["APP13"]); 
var_dump($iptc); 
} 
?>

php 有个图片GD库getimagesize()函数。
有个函数是获取图片的基本信息。
getimagesize()
$img=getimagesize('图片源');
宽度为=$img[0];
高度为=$img[1];
格式为=$img[2];
如果你要简单的话可以更简单如

$picpath = 'https://3water.com/images/logo.gif'; 
$array = getimagesize($picpath); 
print_r( $array ); 
echo '图片宽度为'.$array[0]; 
echo '图片高度为'.$array[1]; 
echo '图片格式为'.$array[2];

//再一个利用getimagesize显示缩略图的代码
function show_thumbnail($file) 
{ 
$max = 200 // Max. thumbnail width and height 
$size = getimagesize($file); 
if ( $size[0] <= $max && $size[1] <= $max ) 
{ 
$ret = '<img src="'.$file.'" '.$size[3].' border="0">'; 
} 
else 
{ 
$k = ( $size[0] >= $size[1] ) ? $size[0] / $max : $size[1] / $max; 
$ret = '<a href="javascript教程:;" onClick="window.open('image.php?img='; 
$ret .= $file.'','','width='.$size[0]; 
$ret .= ',height='.$size[1].'')">'; 
$ret .= '<img src="'.$file.'" width="'.floor($size[0]/$k).'" height="'.floor($size[1]/$k).'" border="0" alt="View full-size image"></a>'; 
} 
return $ret; 
}
PHP 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
PHP 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
一个PHP分页类的代码
May 18 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
php实现的通用图片处理类
Mar 24 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
php生成数字字母的验证码图片
Jul 14 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 #PHP
PHP生成UTF8文件的方法
May 15 #PHP
PHP 魔术函数使用说明
May 14 #PHP
PHP 事务处理数据实现代码
May 13 #PHP
php 常用类汇总 推荐收藏
May 13 #PHP
php echo 输出字符串函数详解
May 13 #PHP
php 图片加水印与上传图片加水印php类
May 12 #PHP
You might like
Yii框架模拟组件调用注入示例
2019/11/11 PHP
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
python框架django基础指南
2016/09/08 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
Python Selenium参数配置方法解析
2020/01/19 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
酒店秘书求职信范文
2014/02/17 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
财务整改报告范文
2014/11/05 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
谢师宴邀请函
2015/02/02 职场文书
参观邀请函范文
2015/02/02 职场文书
土建技术员岗位职责
2015/04/11 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis