19.3.2 获取图片的相关属性
对打开的图片可以获取该图片的有关属性,如图片大小、图片的宽和高等。代码19-7演示了如何在PHP程序中获取图片的相关属性值。
代码19-7 获取图片的相关属性19-7.php
01 <?php
02 $img=imagecreatefromjpeg("tower.jpg");//打开指定的图片文件
03
04 $x=imageSX($img);
05 $y=ImageSY($img);
06 echo"图片tower.jpg的宽为:<b>$x</b>pixels";
07 echo"<br/>";
08 echo"<br/>";
09 echo"图片tower.jpg的高为:<b>$y</b>pixels";
10 ?>
【代码解析】这段代码的执行结果如图19-9所示。这段代码使用函数imageSX()获取已打开图片的宽度,其参数为所打开图像的资源标识符,返回值为图像的宽度,单位为像素。同理,调用函数imageSY()可以取得图片的高度。
另外,通过一个不属于GD库的函数getimagesize(),可以取得图片的大小等相关属性,该函数的语法如下所示。
array getimagesize(string$filename[,array&imageinfo])
该函数可以测定GIF、JPG、PNG、SWF、BMP、XBM等多种格式图片文件的大小。该函数第1个参数为要打开的图片的路径,该参数值可以是一个有效的URL地址。代码19-8演示了函数getimagesize()在PHP程序中的用法。
代码19-8 函数getimagesize()的用法19-8.php
01 <?php
02 $img_info=getimagesize("tower.jpg");//获取图片文件的大小信息
03
04 for($i=0;$i<4;++$i)
05 {
06 echo$img_info[$i];
07 echo"<br/>";
08 }
09 ?>
【代码解析】从程序19-8.php的执行结果可以看出,函数getimagesize()返回了一个关于该图片信息的数组,第1、2个元素是图像的宽、高,第3个元素是图片的格式,它的取值含义如下所示。
❑取值1,表示该图片是GIF格式。
❑取值2,表示该图片是JPG格式。
❑取值3,表示改图片是PNG格式。
❑取值4,表示该图片是SWF格式。
❑取值5,表示该图片是PSD格式。
❑取值6,表示该图片是BMP格式。
第4个元素表示该图片宽、高的字串,从这个显示效果可以看出,这个宽、高字串正好可以用在HTML中表示图片的宽、高属性。比如可以按如下代码片段所示的方式使用。
<?php
$pic_name="some_image.png";
$pic_size=GetImageSize($pic_name);
?>
<img src="<?php echo$pic_name;?>"<?php echo$pic_size[3];?>>
注意 这里再次强调,该函数不属于GD库,无需GD库支持即可使用。
这段代码的输出结果如图19-10所示。