对于PHP如何操作图片,以前很少的接触,因为今天的项目需要,要对一些图片宽度和高度作一下统计,以方便前台筛选出合适的图片进行展示。今天记录一下PHP预设的关于操作图片的函数getimagesize()

PHP getimagesize() 介绍

php的getimagesize()函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。

语法格式:

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

getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。

举例代码

PHP获取图片的信息

list($width, $height, $type, $attr) = getimagesize("333.jpg");
echo "宽度为:" . $width;
echo '<br/>';
echo "高度为:" . $height;
echo '<br/>';
echo "类型为:" . $type;
echo '<br/>';
echo "属性为:" . $attr;

注意:PHP中list()函数的使用方法与讲解可以参考本站的相关文章

输出结果

宽度为:436
高度为:306
类型为:2
属性为:width="436" height="306"

以面的属性值,可以直接附加到前台的HTML代码中去,方便了前台图片调用。

PHP获取远程图片的信息

$url = 'https://www.feiniaomy.com/zb_users/upload/Mochu_Feiniao/logo.png';
$arry = getimagesize("333.jpg");
print_r($arry);

打印结果:

Array ( [0] => 436 [1] => 306 [2] => 2 [3] => width="436" height="306" [bits] => 8 [channels] => 3 [mime] => image/jpeg )

PHP getimagesize()函数返回数组中的值说明如下

索引 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

索引 3 给出的是一个宽度和高度的字符串,可以直接用于 HTML 的 <image> 标签

索引 bits 给出的是图像的每种颜色的位数,二进制格式

索引 channels 给出的是图像的通道值,RGB 图像默认是 3

索引 mime 给出的是图像的 MIME 信息,此信息可以用来在 HTTP Content-type 头信息中发送正确的信息,如: header("Content-type: image/jpeg");