對于開發者而言,如何獲取一張圖片的基本信息?如圖片的大小、格式、色彩等。而php中有一個函數能夠完成這個任務,那就是getimagesize()。今天我們就來詳細講解一下php中getimagesize的用法。
getimagesize()函數能夠返回指定文件的大小信息,并且還能獲取圖片的MIME類型以及圖片的寬度和高度等信息。獲取這些信息是圖片處理中首要的步驟之一,基于這些信息,我們才能夠準確進行圖片的處理。下面我們通過幾個例子來進行詳細說明。
//獲取本地圖片信息 $size = getimagesize('/path/to/image.jpg'); var_dump($size);
代碼執行后,你將會收到一個類似下面這樣的輸出結果:
array( '0' =>800, // 圖片寬度 '1' =>600, // 圖片高度 '2' =>2, // 圖片類型,其中1GIF、2JPG、3PNG、4SWF、5PSD、6BMP '3' =>'width="800" height="600"', // HTML 屬性格式的字符串 'bits' =>8, // 每個顏色的位元數 'channels' =>3, // 色彩通道數量:RGB則為3,CMYK則為4 'mime' =>'image/jpeg' // MIME類型 )
我們通過getimagesize()函數成功的獲取到了圖片的寬高、類型以及MIME類型等信息,這些信息可以看出getimagesize()函數的重要性。
getimagesize()函數還能支持通過url、字符串或者文件句柄獲取圖片信息。可以通過下面的代碼展示如何從對應的URL地址獲取圖片信息:
// 通過url地址獲取圖片信息 $size = getimagesize('http://www.example.com/path/to/image.jpg'); var_dump($size); // 獲取字符串中的圖片信息 $data = file_get_contents('/path/to/image.jpg'); $size = getimagesizefromstring($data); var_dump($size); // 通過文件句柄獲取圖片信息 $f = fopen('/path/to/image.jpg', 'r'); $size = getimagesizefromstring($f); fclose($f); var_dump($size);
getimagesize()函數在處理圖片時,需要使用到GD庫(GD extension),因此在使用getimagesize()函數之前我們需要檢查一下GD庫是否已經安裝。使用下面的代碼片段檢查GD庫是否已經安裝:
if(extension_loaded('gd') && function_exists('gd_info')) { echo 'GD庫已經安裝!'; } else { echo 'GD庫未安裝!'; }
通過上面的代碼片段,我們可以在使用getimagesize()函數之前檢查是否已經安裝GD庫,保證在處理圖片的時候不會出現問題。
在php中,getimagesize()函數是一個非常強大的函數。能夠通過文件、字符串以及url地址等方式獲取圖片信息,并且還支持通過GD庫進行操作。因此,getimagesize()函數對于圖片處理來說是必不可少的工具之一。