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級的錯誤。
注:對JPC,JP2,JPX,JB2,XBM和WBMP的支持自 PHP 4.3.2 起可用。對SWC的支持自 PHP 4.3.0 起可用。對TIFF的支持是 PHP 4.2.0 添加的。
注:JPEG 2000 支持是 PHP 4.3.2 添加的。注意 JPC 和 JP2 可以有不同的色彩深度的成分。此情況下,“bits”的值是碰到的最高的位深度。此外,JP2 檔案可能包含有多個 JPEG 2000 代碼流,此情況下,getimagesize()返回此檔案頂層中碰到的第一個代碼流的值。
注:本函式不需要 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 標記。
例子 1. getimagesize(檔案)
<?php
list($width,$height,$type,$attr) =getimagesize("img/flag.jpg");
echo"<img src=\"img/flag.jpg\" $attr>";
?>
URL 支持是 PHP 4.0.5 添加的。
例子 2. getimagesize(URL)
<?php
$size=getimagesize("http://localhost/gifs/logo.gif");
// if the file name has space in it, encode it properly
$size=getimagesize("http://localhost/gifs/lo%20go.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 頭信息中傳送正確的信息:
例子 3. getimagesize() 和 MIME 類型
<?php
$size=getimagesize($filename);
$fp=fopen($filename,"rb");
if ($size&&$fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// error
}
?>
可選的imageinfo參數允許從圖像檔案中提取一些擴展信息。目前,這將以一個關聯數組返回不同的JPGAPP 標識。某些程式用這些 APP 標識來在 圖像中嵌入文本信息。
例子 4. getimagesize() 返回 IPTC
<?php
$size=getimagesize("testimg.jpg", &$info);
if (isset($info["APP13"])) {
$iptc=iptcparse($info["APP13"]);
var_dump($iptc);
}
?>
相關詞條
-
getimagesize
header("Con exit; 可選的imagein
-
ImageCopyResampled
, $height) = getimagesize($filename..., $height_orig) = getimagesize($filename...
-
跨站攻擊
基本概括業界對跨站攻擊的定義如下:“跨站攻擊是指入侵者在遠程WEB頁面的HTML代碼中插入具有惡意目的的數據,用戶認為該頁面是可...
基本概括 比較 區別 如何防範 -
imagecreatefrompng
" title="getimagesize" href="/wiki/getimagesize">getimagesize("png8image.png"); $im...