我能够使用ZXing解码Kinect保存的图像:
test :: Int -> IO [Int]
test n = sequence $ replicate n $ randomRIO (1,6::Int)
其中// create a barcode reader instance
IBarcodeReader reader = new BarcodeReader();
// load a bitmap
Bitmap barcodeBitmap = (Bitmap)Bitmap.FromFile(path);
// detect and decode the barcode inside the bitmap
var result = reader.Decode(barcodeBitmap);
是由Kinect SDK示例代码生成的path
文件。它是在屏幕截图后执行的,速度非常快,不到1秒。
然而,当我尝试在没有任何文件的情况下做同样的事情时:
.png
该程序冻结,没有显示任何内容。在调试模式下,我发现程序始终位于FrameDescription colorFrameDescription = colorFrame.FrameDescription;
byte[] bit = new byte[colorFrameDescription.LengthInPixels * 4];
colorFrame.CopyConvertedFrameDataToArray(bit, ColorImageFormat.Bgra);
RGBLuminanceSource ls = new RGBLuminanceSource(bit, colorFrameDescription.Width, colorFrameDescription.Height);
IBarcodeReader reader = new BarcodeReader() { AutoRotate = true, TryHarder = true } ;
// detect and decode the barcode inside the bitmap
var result = reader.Decode(ls);
内,并且从未转义过。这里肯定有问题,谁知道?