【发布时间】:2015-10-11 20:06:50
【问题描述】:
我有一个 WriteableBitmap 图像,我想在 buttonclick 事件中只显示它的绿色部分。
之前我尝试先将其转换为灰度,然后我希望在此之后我只能显示绿色组件,但无论如何我无法破解。
下面是我目前正在尝试将图像转换为灰度图像的代码:
public static WriteableBitmap ToGrayScale(WriteableBitmap bitmapImage) {
for (var y = 0; y < bitmapImage.PixelHeight; y++) {
for (var x = 0; x < bitmapImage.PixelWidth; x++) {
var pixelLocation = bitmapImage.PixelWidth * y + x;
var pixel = bitmapImage.Pixels[pixelLocation];
var pixelbytes = BitConverter.GetBytes(pixel);
var bwPixel = (byte)(.299 * pixelbytes[2] + .587 * pixelbytes[1] + .114 * pixelbytes[0]);
pixelbytes[0] = bwPixel;
pixelbytes[1] = bwPixel;
pixelbytes[2] = bwPixel;
bitmapImage.Pixels[pixelLocation] = BitConverter.ToInt32(pixelbytes, 0);
}
}
return bitmapImage;
}
我收到此错误: “Windows.UI.Xaml.Media.Imaging.WriteableBitmap”不包含“像素”的定义,并且没有扩展方法“像素”接受“Windows.UI.Xaml.Media.Imaging.WriteableBitmap”类型的第一个参数找到(您是否缺少 using 指令或程序集引用?)
一些帮助将非常感谢我。谢谢。
【问题讨论】:
标签: c# image-processing windows-8.1 winrt-xaml pixels