我想使用此代码访问要与我的 Kinect 代码一起使用的图像像素。所以我可以用图像位替换深度位,所以我创建了一个 WPF 应用程序,一旦我运行我的代码,我就会得到这个异常(它不会发生在控制台应用程序上)但我需要它作为WPF 应用程序运行,因为 . . 我打算将它与Kinect一起使用
XamlParseException
'对匹配指定绑定约束的'pixelManipulation.MainWindow'类型的构造函数的调用引发了异常。行号“3”和行位置“9”。
这是代码:
public partial class MainWindow : Window
{
System.Drawing.Bitmap b = new
System.Drawing.Bitmap(@"autumn_scene.jpg");
public MainWindow()
{
InitializeComponent();
doSomethingWithBitmapFast(b);
}
public static void doSomethingWithBitmapFast(System.Drawing.Bitmap bmp)
{
Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
System.Drawing.Imaging.BitmapData bmpData =
bmp.LockBits(rect,
System.Drawing.Imaging.ImageLockMode.ReadOnly,
bmp.PixelFormat);
IntPtr ptr = bmpData.Scan0;
int bytes = bmpData.Stride * bmp.Height;
byte[] rgbValues = new byte[bytes];
System.Runtime.InteropServices.Marshal.Copy(ptr,
rgbValues, 0, bytes);
byte red = 0;
byte green = 0;
byte blue = 0;
for (int x = 0; x < bmp.Width; x++)
{
for (int y = 0; y < bmp.Height; y++)
{
//See the link above for an explanation
//of this calculation (assumes 24bppRgb format)
int position = (y * bmpData.Stride) + (x * 3);
blue = rgbValues[position];
green = rgbValues[position + 1];
red = rgbValues[position + 2];
Console.WriteLine("Fast: " + red + " "
+ green + " " + blue);
}
}
bmp.UnlockBits(bmpData);
}
}
}