圖像分辨率和圖像大小的計算


一、BMP位圖

1.

一個實際例子,選擇一個24位深度的225×225位圖,

由於24位位圖是真彩色,沒有顏色表這一樣,所以

其文件大小為152.154字節,則

152.154=14+40+(225×3+1)×225

注:因為1個像素用三個字節來表示,所以乘以3;因為位圖存儲時,Windows規定一個掃描行所占的字節數必須是
4的倍數(即以long為單位),不足的以0填充,225×3+1剛好是4的倍數;14和40是位圖文件頭和位圖信息頭的字節大小;

 

2.

當利用繪圖程序將文件保存為256色,即8位深度的位圖后,文件大小變為52.378字節,即

52.378 = 14 + 50 + 256 × 4 + (225 + 3)× 225

注:256色位圖有顏色表,每個顏色表結構體是4字節,所以顏色表這一項占256*4 個字節;

225+3 剛好湊成4的倍數

 

3.

從上面的兩個例子可知,對於bmp位圖,由於存儲時無壓縮,我們可以從像素總量(比如上面的255*255)以及位圖存儲格式中,算出一幅位圖占用的字節數;

也即是說,如果幾幅位圖都是 1280*960,並且都是8位深度,那么它們占用的存儲大小都是一樣的~

(葫蘆島相機拍攝的圖片,大小為:14+40+256*4+1280*960字節,約為1.17MB~)

對於從網上隨便下載的一幅圖片,可能是jpg、png、bmp等多種格式,我們光知道他們像素總數是1280*860,是無法計算出圖片大小的~~因為壓縮方式、編碼等都不一樣

 

4.

我們通常說,一幅圖片的分辨率是1280*960,這個其實並不准確~
圖像分辨率指圖像中存儲的信息量,是每英寸圖像內有多少個像素點,即:像素每英寸,單位為PPI(Pixels Per Inch)。一般來說,很少用分辨率這個概念來衡量電子圖片。
但是,在生活中,圖像分辨率是一個被混用到電子圖片的概念,原本含義的目的是“密度”決定“打印質量”,后來被混用,或者說錯誤的用做衡量圖像內的像素點數量。

 

 

1920*1200是像素總量,不是密度,密度要除以英寸才是,存儲在圖像頭部信息中,用於打印設置。

 

5.
用瀏覽器截圖工具截取一幅圖片,保存在windows畫圖工具中,假設截取的寬度為1280,高度為960

 

 

當我們用不同的格式進行保存(比如8位位圖、24位位圖、jpg、png等不同格式),最后在電腦上顯示的圖片尺寸都為:1280*960,而圖片的存儲大小都不一樣~~
我們用不同方式存儲時,圖片的像素總數是不變的,都為1280*960,只不過每個像素需要的字節數不一樣,所以文件大小也不一樣~即便是jpg等壓縮格式,像素的個數並沒有被壓縮,只是針對不同的像素點,可能需要的字節數不一樣

 

 

 

6.
兩個相同尺寸1920*1200的圖像,在相同色彩度(如24位真彩)情況下,無壓縮的BMP位圖的大小是相同的。
而你看到文件大小的不同,是因為圖像壓縮算法造成的(無壓縮文件會非常大,一般為BMP格式),圖像壓縮是個比較大的課題,分為無損壓縮(PNG等)和有損壓縮(JPG等),具體壓縮算法非常多,各有優劣。
以最常見的JPG為例,其壓縮算法是有損的,壓縮后的文件大小有幾個重要的決定因素:原圖尺寸、有損程度、圖像中相鄰點色差,圖像中存在色彩數量等等。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM