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 快速生成 Flash 动画的方法
Mar 06 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
php array_walk() 数组函数
Jul 12 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
laravel框架创建授权策略实例分析
Nov 22 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
用在PHP里的JS打印函数
2006/10/09 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
PHP 快速排序算法详解
2014/11/10 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
javascript的函数
2007/01/31 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
Python实现线程状态监测简单示例
2018/03/28 Python
10个顶级Python实用库推荐
2021/03/04 Python
后勤人员自我鉴定
2013/10/20 职场文书
关于工资低的辞职信
2014/01/14 职场文书
员工开除通知书
2015/04/25 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
python基于tkinter实现gif录屏功能
2021/05/19 Python
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
python实现会员信息管理系统(List)
2022/03/18 Python
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL