php getimagesize检测上传图片尺寸
在php中获取上传图片尺寸大小,主要使用php内置函数getimagesize实现,如果对上传图片有限制,则可通过此函数的返回值来判断上传图片的高度、宽度等尺寸(像素值)是否符合规定值,若过大或过小,则给出提示。
例1,php getimagesize判断上传图片尺寸。
复制代码 代码示例:
function CheckImageSize($ImageFileName,$LimitSize)
{
$size=GetImageSize($ImageFileName);
if ($size[0]>$LimitSize[0]||$size[1]>$LimitSize[1]){
echo '对不起,你要上传的图片尺寸太大';
return false;
}
return true;
}
注意,GetImageSize()函数的返回值是一个数组。
例如:
Array
(
[0] => 350 //图像宽度像素值
[1] => 318 //图像高度像素值
[2] => 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;
[3] => width=”350″ height=”318″ //用于HTML的<image>标签,可直接使用
[bits] => 8//图像的每种颜色的位数,二进制
[channels] => 3 //图像的通道值,RGB图像一般是3
[mime] => image/jpeg //可选的MIME信息,可直接用在HTML的HTTP Content-type标签中
)
GetImageSize()函数无需GD库支持,传入的参数值可以是路径、也可以是URL,要保证被检测的图片对象是存在的。
第二部分,getimagesize 取得图片尺寸,该方法须先启用GD函式库。
在 php.ini 中找到 ;extension=php_gd2.dll 把前面的分号去掉。
例2:
复制代码 代码示例:
$arr = getimagesize("1.jpg");
/*
* 这里$arr为一个数组类型
* $arr[0] 为图像的寬度
* $arr[1] 为图像的高度
* $arr[2] 为图像的格式,包括jpg、gif和png等
* $arr[3] 为图像的宽度和高度,內容为 width="xxx" height="yyy" */
例3,getimagesize函数用法。
复制代码 代码示例:
<?php
$size = getimagesize($filename);
$fp=fopen($filename, "rb");
if ($size && $fp) { // www.jbxue.com
header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// error
}
?>
例4,getimagesize函数用法(来自php手册中的例子)。
复制代码 代码示例:
<?php
$size = getimagesize("testimg.jpg", &$info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>