Bitmap重要屬性

2021-06-08 11:23:24 字數 2428 閱讀 4464

bitmap重要屬性整理

2009-02-24 14:13

bitmap:

(1)     public bitmap (int width,int height,int stride,     pixelformat format,intptr scan0)

用指定的大小、畫素格式和畫素資料初始化 bitmap 類的新例項。

(2)     lockbits():,就是把影象的記憶體區域根據格式鎖定,拿到那塊記憶體的首位址。這樣就可以直接改寫這段記憶體了。這個方法的設計是挺好,可惜都是c++作為源泉來的,.net framework裡面根本就不推薦用指標,需要用marshal.copy把內容copy到乙個byte陣列裡面,然後處理完了再copy回去。

(3)     unlockbits():從系統記憶體解鎖此 bitmap。

bitmapdata:位圖影象的屬性

(1)   height獲取或設定 bitmap 物件的畫素高度。有時也稱作掃瞄行數。

(2)   pixelformat: 獲取或設定返回此 bitmapdata 物件的 bitmap 物件中畫素資訊的格式。

(3)   reserved: 保留。不要使用。

(4)   scan0: 獲取或設定點陣圖中第乙個畫素資料的位址。它也可以看成是點陣圖中的第乙個掃瞄行。

(5)   stride: 獲取或設定 bitmap 物件的跨距寬度(也稱為掃瞄寬度)。

stride:跨距是單行畫素(乙個掃瞄行)的寬度,捨入為乙個 4 位元組的邊界。跨距總是大於或等於實際畫素寬度。如果跨距為正,則點陣圖自頂向下。如果跨距為負,則點陣圖顛倒。stride是指影象每一行需要占用的位元組數。根據bmp格式的標準,stride一定要是4的倍數。據個例子,一幅1024*768的24bpprgb的影象,每行有效的畫素資訊應該是1024*3 = 3072。因為已經是4的倍數,所以stride就是3072。那麼如果這幅影象是35*30,那麼一行的有效畫素資訊是105,但是105不是4的倍數,所以填充空位元組,stride應該是108。這一行計算出來的offset就是3。一要注意必須是4的倍數,二單位是位元組!

(6)   width: 獲取或設定 bitmap 物件的畫素寬度。這也可以看作是乙個掃瞄行中的畫素數。

pixelformat:

(1)     format24bpprgb,也就是24位色。在這種格式下3個位元組表示一種顏色,也就是我們通常所知道的r,g,b,所以每個位元組表示顏色的乙個分量。

(2)     format32bppargb,除了rgb,在影象中還存在乙個通道,叫做a。這個a就是用來描述當前畫素是透明,半透明,還是全透明的分量。這個通道是2個叫catmull和smith在上世紀70年代初發明的。通過這個分量,我們可以進行alpha混合的一些計算。從而使表面的影象和背景影象混合,從而造成透明半透明的效果。在這種格式下a作為乙個byte,取值可以從0到255,那麼0表示影象完全透明,則完全不可見,255則表示影象完全不透明。每個畫素都可以實現這種透明或者半透明的效果。更詳細解釋可以參考

,或者去買本數字影象處理的書回來看。

(3)     format32bpppargb,這叫做premultiplied alpha

,就是說在rgb分量裡面,alpha分量的資料已經被預先乘進去了。比如說,乙個半透明的紅色點,在argb下,向量是(255,0,0,128),而在pargb下就變成了(128,0,0,128)。這是為了不要每次都做乘法。

(4)bitmap儲存成為乙個檔案,那麼必須用png格式,才能夠儲存alpha通道的資訊。如果你存為jpg/bmp/gif,那麼alpha通道的資訊將會被丟失。如果存為bmp,那麼檔案格式將變成format32bpprgb,其中1個位元組不再使用;如果儲存為jpeg,那麼是format24bpprgb;存為gif,格式將變成format8bppindexed。根據標準,bmp/jpg本來就不支援透明通道,所以沒有可能保留透明資訊。gif倒是支援透明,但是gif中顏色的資訊都是索引,所以alpha的解釋對gif完全沒有效果,

bitmapinfoheader:

biheight

:說明圖象的高度,以象素為單位。

如果該值是乙個正數,說明

btimap

是bottom up dib

,起始點是左下角,也就是從影象的最下面一行掃瞄,

位圖陣列中得到的第一行資料實際是圖形的最下面的一行。

影象是倒向的;

如果該值是乙個負數,則說明影象是

topdown dib

,起始點是左上角,影象從最上面一行掃瞄,影象正向的。

大多數的

bmp檔案都是倒向的點陣圖,也就是時,高度值是乙個正數。(注:當高度值是乙個負數時(正向影象),影象將不能被壓縮(也就是說

bicompression

成員將不能是

bi_rle8

或bi_rle4)。

Bitmap四種屬性

bitmap 1 public bitmap int width,int height,int stride,pixelformat format,intptr scan0 用指定的大小 畫素格式和畫素資料初始化 bitmap 類的新例項。2 lockbits 就是把影象的記憶體區域根據格式鎖定,拿...

RelativeLayout 重要屬性

第一類 屬性值為true或false android layout centerhrizontal 水平居中 android layout centervertical 垂直居中 android layout centerinparent 相對于父元素完全居中 android layout alig...

RelativeLayout重要屬性

relativelayout用到的一些重要的屬性 第一類 屬性值為true或false android layout centerhrizontal 水平居中 android layout centervertical 垂直居中 android layout centerinparent 相對于父元...