PHP getimagesize():獲取影象大小

2020-07-16 10:05:15
PHP getimagesize() 函數用來獲取影象的大小,其語法如下:

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

getimagesize() 函數的引數和返回結果相同。

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 級的錯誤。

getimagesize() 函數返回一個至少具有 4 個元素的陣列:
  • 索引 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=PX,12=JB2,13=SWC,14=IFF,15=WBMP,16=XBM。這些標記與 PHP 4.3.0 新加的 IMAGETYPE 常數對應。
  • 索引 3 是文字字串,內容為 "height="yyy"width="xxx"",可直接用於 IMG 標記。

getimagesize() 還會返回額外的引數 mime,符合該影象的 MIME 型別。此資訊可以用來在 HTTP Content-type 頭資訊中傳送正確的資訊。

對於 JPG 影象,還會多返回兩個索引:channels 和 bits。對於 RGB 影象,channels 值為 3;對於 CMYK 影象,channels 值為 4。bits 是每種顏色的位數。

範例如下:
<?php
//echo phpinfo();
echo "<pre>";
print_r(getimagesize('123.jpg'));
?>
執行以上程式的輸出結果如下:

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

由列印的陣列可知,此影象寬度的畫素值是 961,影象高度的畫素值是 640,索引 2 的值為 2,說明影象是 JPG 影象,除此之外,還獲得了影象的 channels、bits 以及 mime 型別。