c# – 调用WriteableBitmap.WritePixels方法

前端之家收集整理的这篇文章主要介绍了c# – 调用WriteableBitmap.WritePixels方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试调用WriteableBitmap.WritePixels方法,但我似乎无法理解参数.
MSDN文章非常愚钝(或者说我说… null?),我不明白如何使用该方法.

编辑:
我试图修改这篇文章代码
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap%28v=VS.90%29.aspx

PixelFormat pf = PixelFormats.Rgba128Float;
        WriteableBitmap wb = new WriteableBitmap(width * 5,height * 5,100,pf,new BitmapPalette(new List<Color> { Color.FromArgb(255,255,0) }));
        byte[] ColorData = { 0,0 };
        wb.WritePixels(new Int32Rect(0,1,1),ColorData,4,0);
        Background.Source = wb;

在最后一行之前的行中,调试器声称缓冲区(ColorData)的大小不够.

EDIT2:
我再试一次:

void RefreshGraphics()
    {
        PixelFormat pf = PixelFormats.Pbgra32;
        WriteableBitmap wb = new WriteableBitmap(width * 5,0) }));
        byte[] ColorData = new byte[1000];
        byte t = 0;
        for (int i = 0; i < 1000; i++)
            ColorData[i] = t++;
        wb.WritePixels(new Int32Rect(0,10,10),0);
        Background.Source = wb;
    }

现在“价值不在预期的范围”.
stackTrace不知道哪一个…

编辑3:
问题解决了!
不知道如何或为什么,但代码的作品(我怕改变它…)

解决方法

检查高度和宽度的值.也许字节数组根本不够大!

猜你在找的C#相关文章