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 相关文章推荐
PHP详解ASCII码对照表与字符转换
Dec 05 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
PHP实现的分页类定义与用法示例
Jul 05 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
Angular2库初探
2017/03/01 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
django文档学习之applications使用详解
2018/01/29 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
浅谈python 类方法/静态方法
2020/09/18 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
医学生自我评价
2014/01/27 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
教师年度考核个人总结
2015/02/12 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
在python中读取和写入CSV文件详情
2022/06/28 Python