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;