加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 调用WriteableBitmap.WritePixels方法

发布时间:2020-12-15 06:26:36 所属栏目:百科 来源:网络整理
导读:我正在尝试调用WriteableBitmap.WritePixels方法,但我似乎无法理解参数. MSDN文章非常愚钝(或者说我说… null?),我不明白如何使用该方法. 编辑: 我试图修改这篇文章的代码: http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writea
我正在尝试调用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:
问题解决了!
不知道如何或为什么,但代码的作品(我怕改变它…)

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读