bmp在記憶體中的存放

2021-06-07 13:05:50 字數 827 閱讀 2709

.bmp 儲存影象

每張圖按大小來儲存,即影象的長寬畫素大小。

如果一張的畫素是 240x320,則此影象在記憶體的存放是乙個

240x320的陣列,每個陣列的元素是int整形(整數占用4個byte)

數位相機中所謂的支援500w畫素就是這個意思,代表它能處理多大的圖形色彩資訊的能力,畫素越高,需要處理時間越長,因為陣列很大;

陣列中每個元素中整形數字含四位資訊:a,r,g,b;

a: alpha通道值,即該位置畫素點的透明值(佔乙個byte取值0~255)

r: 存放red紅色通道;(佔乙個byte取值0~255)

g: green 色 ;(佔乙個byte取值0~255)

b: blue色;(佔乙個byte取值0~255)

各個色位之間的關係是「與」的關係

其中rgb又是自然界三原色,通過rgb的組合可以將任何色彩表示出來。

比如 r+g= yellow 紅+綠等於黃色(255,255,255,0)。 所有顏色相加等於白色(255,255,255,255)。 所有顏色不加等於黑色(255,0,0,0)。所有顏色都加一半等於灰色(255,130,130,130);

第一位alpha為零時這張圖看不見,透明了;為255時,完全不透明,完全可見。

假設以下陣列:,,

,,表示這是一張4x4畫素大小的全紅色的圖;

乙個畫素在螢幕上顯示出來非常小,當多個不同的畫素按規律擺放在一起形成有行有列的陣列的時候讓人的眼睛會產生影象。

另外: .png和.jpeg等影象都是在這種方法的基礎上加入了壓縮演算法,使得圖形質量不怎麼損失的情況下檔案的尺寸大規模減少,方便人們攜帶和儲存

資料在記憶體中的存放

在計算機系統中,執行的應用程式的資料都是儲存在記憶體之中 不同型別的資料,儲存的記憶體區域不同,其中包括 1 棧區 stack 由編譯器自動分配並釋放,一般存放函式的引數值,區域性變數等 2 堆區 heap 由程式設計師分配和釋放,如果程式設計師不釋放,程式結束時,可能會由作業系統 3 暫存器區 用...

關於String在記憶體中的存放

string s1 abc 這個字串s1被賦予了值 abc 首先,查詢stringpool中有沒有 abc 這個值,如果不存在,那麼就將其存進去,如果已經存在,那麼就會被s1所呼叫。string s1 abc string s2 abc s1和s2所指向的物件是同乙個,以下 能夠看出來 system...

關於陣列在記憶體中的存放形式

char a 3 3 sizeof a 結果是9 9這個結果一直認為是 理所當然 但是當自己實現乙個二維陣列時,最簡單的方式就是 char test char malloc sizeof char row size int i 0 for ichar malloc sizeof char col s...