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

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

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

EDIT2:
我再试一次:

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

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

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

解决方法

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

猜你在找的C#相关文章