可寫點陣圖(WriteableBitmap)
WriteableBitmap派生自BitmapSource類,因此它屬於記憶體點陣圖,不過WriteableBitmap類公開了表示影像畫素資料的PixelBuffer屬性,可以通過該屬性在執行時寫入或修改畫素資料,以達到編輯影像的效果。
下面示例演示通過向WriteableBitmap物件寫入畫素資料的形式來動態建立記憶體影像。
通過程式碼生成的記憶體影像將顯示在Image控制元件中,Button控制元件的Tapped事件處理程式碼如下:
private async void Button_Tapped(object sender, TappedRoutedEventArgs e)
{
#region 可寫點陣圖(WriteableBitmap)
byte[] data = new byte[8 * 6 * 4];
for (int i = 0; i < data.Length; i+=4)
{
if ((i/4)%2 == 0)
{
data[i] = 0; //B
data[i + 1] = 0; //G
data[i + 2] = 255; //R
data[i + 3] = 255; //A
}
else
{
data[i] = 0; //B
data[i + 1] = 255; //G
data[i + 2] = 0; //R
data[i + 3] = 255; //A
}
}
WriteableBitmap wb = new WriteableBitmap(8, 6);
data.CopyTo(wb.PixelBuffer);
img.Source = wb;
#endregion
}
寫入WriteableBitmap物件中的畫素資料格式為BGRA8,即顏色通道的寫入順序為B-G-R-A,每個通道值8位,剛好一個位元組,因此,影像中的每個畫素點均佔用4個位元組的空間(32位)。上面程式碼生成寬度為8畫素,高度為6畫素的影像,由於每個畫素點佔用4個位元組,因此位元組陣列data的大小的最後要乘以4。
雖然通過PixelBuffer屬性可以訪問影像的畫素資料,但是該屬性不能直接操作,因此,可以呼叫byte[](位元組陣列)的CopyTo擴充套件方法把位元組內容複製到PixelBuffer屬性的緩衝區中。CopyTo擴充套件方法是在System.Runtime.InteropServices.WindowsRuntime名稱空間下的WindowsRuntimeBufferExtensions類中定義的。
本例中,根據寫入畫素點的次序是否為偶數(是否可被2整除),分配不同的BGRA值。
示例效果如下:
相關文章
- 點陣圖
- 使用點陣圖選單項——建立點陣圖 (轉)
- 點陣圖排序排序
- 點陣圖索引.sql索引SQL
- 點陣圖索引(Bitmap Index)——從B*樹索引到點陣圖索引索引Index
- 電商圖片線上製作,可摳圖可寫文案
- 點陣圖索引(Bitmap Index)——點陣圖索引與資料DML鎖定索引Index
- 使用點陣圖選單項——點陣圖選單項例項 (轉)
- PHP 文字生成點陣圖PHP
- Redis 應用-點陣圖Redis
- Oracle索引——點陣圖索引Oracle索引
- Oracle-點陣圖索引Oracle索引
- 點陣圖字型匯入
- 使用點陣圖選單項——設定點陣圖型別標記 (轉)型別
- ClickHouse 留存、路徑、漏斗、session 點陣圖 roaringbitmap 點陣圖最佳化Session
- PHP掃描圖片轉點陣 二維碼轉點陣PHP
- 演算法-點陣圖排序演算法排序
- oracle 點陣圖索引(bitmap index)Oracle索引Index
- 點陣圖索引:原理(BitMap index)索引Index
- 點陣圖索引(bitmap-index)索引Index
- 建立點陣圖選單 (轉)
- 【點陣圖索引】在點陣圖索引列上進行更新操作的鎖代價研究索引
- 代理模式+react+ 圖片佔點陣圖模式React
- ATL中使用點陣圖資源繪圖繪圖
- Android Bitmap(點陣圖)詳解Android
- Python點陣圖索引學習Python索引
- 點陣圖與ERP場景
- 點陣圖(bitmap)原理以及實現
- 點陣圖索引的工作原理 - Richard索引
- 點陣圖索引(Bitmap Index)——索引共用索引Index
- windows程式設計之點陣圖Windows程式設計
- bitmap index點陣圖索引系列(一)Index索引
- VC 點陣圖按鈕CBitmapButton的使用
- 雜湊表擴充套件—點陣圖套件
- hash join構建點陣圖的理解
- Windows Phone 7 點陣圖程式設計Windows程式設計
- 【基礎知識】索引--點陣圖索引索引
- BMP點陣圖格式詳解--轉載