稍微講解一下圖片在電腦的成像過程
首先要在螢幕上出現一個畫面
對電腦來說就是控制一堆點畫在螢幕上
這些點有各式各樣的顏色
所以就可以知道一張800*600的圖片就是代表他有800*600個點
這些點的顏色資料都有一個對應的數字
以全彩為例,全彩影像顏色數分別以RGB(三原色)來描述
以十進位來看的話
ex.
0為黑色,16777215為白色
0-16777215的數字就是所有全彩的顏色編號
電腦是2進制的方式
所以對他來說白色就等於111111111111111111111111
黑色就是000000000000000000000000
其他拉裡拉雜的顏色就是01001111110010101~不拉不拉~
反正都需要用24位的2進位數字來表示
而24位的2進位數字要佔多少空間呢?剛好一位佔一個bit,共需24bits來放一個全彩的點,所以800*600個點就要800*60*24bits這麼多的記憶體空間來顯示一張圖片
這就是未壓縮的圖片所佔的大小
以上是圖片在電腦成像的部分
不管任何格式的圖片檔案到電腦裡都是這麼處理的
那泥巴摔角女你的疑問在於檔案的部分
前面的資料提供給電腦成像用
可是不需成像時時我們就會想把他存起來
最單純的就是全部照存大小就是1比1存起來
可是有人就會覺得好大喔
於是就以各式各樣的壓縮演算法經公式計算後存
計算後的結果
這結果通常比1比1的方式小很多
而且丟進某公式後會再度還原成原來的資料
或是很接近原來的資料
這邊牽涉到演算法破壞/非破壞性的問題所以就看看就好不詳述
而一些特別的檔案比說上面提到的photoshop的檔案格式由於他的特殊目的
比如說我在座標(50,60)那一點的顏色應該是某種橘色,因為photoshop有圖層的功能,對螢幕上的那點橘色可能是圖層一與圖層2的紅色與黃色疊出來的效果
雖然對電腦來說只有一種顏色
可是還是會將兩個顏色存起來,成像實在經由公式運算送出一個顏色,對電腦而言實際上還是只送出一個顏色
所以一張全彩的800*600的圖片換算成檔案會有很多不同的大小
但是映射到記憶體裡負責成像顯示出來的資料量就是800*600*24bits這麼多
同理單色的就是800*600*1bit
灰階我還是不記得
不過也是800*600*灰階色