我有一个来自(System.Windows.Controls.Image)的图片。
此图像位于主画布上。
当我点击此图像的任何部分时,我想确定鼠标光标的Alpha通道值。
在执行以下操作时,我会遇到异常。 {“值不在预期范围内。”} System.Exception {System.ArgumentException}
代码:
try{
CroppedBitmap cb = new CroppedBitmap(ac.displayImage.Source as BitmapSource,
new Int32Rect((int)mousePoint.X,
(int)mousePoint.Y, 1, 1));
byte[] pixels = new byte[4];
cb.CopyPixels(pixels, 4, 0);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
当用户点击主窗口时,会获得mousePoint.X和mousePoint.Y。有更好的方法吗?
答案 0 :(得分:0)
为什么不直接在BitmapSource上使用CopyPixels?
http://msdn.microsoft.com/en-us/library/ms616042(v=VS.100).aspx
此外,你确定你的步伐真的是4吗? Stride确实包括填充。
答案 1 :(得分:0)
我说的方法有效。问题出现在鼠标光标本身的实际位置。我的方法中返回的位置是相对于主窗口的。这需要转换为主画布。完成后,发布的代码运行正常。我可以检查像素[3]值来确定我的alpha通道颜色。