php 获得上传图片尺寸,php getimagesize 上传图片的长度和宽度检测代码

本文详细介绍了PHP的getimagesize()函数,用于获取图像的尺寸、类型、MIME类型等信息。它支持多种图像格式,并能处理URL。此外,还讲解了如何利用该函数返回的IPTC信息,以及如何创建缩略图。getimagesize()不需要GD库,可以直接用于HTML中的图像属性,并且自PHP4.3.0开始增加了更多功能,如返回MIME类型和额外的图像信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

getimagesize — 取得图像大小

说明

array getimagesize ( string $filename [, array &$imageinfo ] )

getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 标记中的 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(文件)

list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");

echo "flag.jpg%5C%22";

?>

URL 支持是 PHP 4.0.5 添加的。

Example #2 getimagesize(URL)

$size = getimagesize("https://www.jb51.net/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 类型

$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

$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://www.jb51.net/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 = ''.%24file.'';

}

else

{

$k = ( $size[0] >= $size[1] ) ? $size[0] / $max : $size[1] / $max;

$ret = '';

$ret .= 'View full-size image';

}

return $ret;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值