在WPF中创建一个像素随机选择的图像

时间:2012-11-28 02:37:49

标签: c# wpf

我想创建一个800x600的图像,其每个像素随机选择为绿色或红色。我怎么能在WPF中做到这一点?

1 个答案:

答案 0 :(得分:2)

请参阅WriteableBitmap

const uint red = 0xFFFF0000,green = 0xFF00FF00;
var rnd = new Random();
var bmp = new WriteableBitmap(800, 600, 96, 96, PixelFormats.Pbgra32, null);
var data = Enumerable.Range(0, 800 * 600).Select(x => rnd.NextDouble() > 0.5 ? red : green).ToArray();
bmp.WritePixels(new Int32Rect(0, 0, 800, 600), data, bmp.BackBufferStride, 0);

这是一个简单的例子,不包括处理位图步幅,不同像素格式或alpha。