我在XAML& amp;写了一个Windows商店应用程序。 C#从平板电脑的网络摄像头读取图像,并使用Zxing的图书解码条形码。该代码在具有i5处理器的特定平板电脑上运行良好,但无法在具有200万像素摄像头和“Intel Baytrail四核”处理器的实际平板电脑上运行。
关于为什么会发生这种情况的任何想法?
如果您需要查看我将分享的此问题广告代码,请与我们联系。
我想知道在另一台平板电脑上出现故障时,相同的代码如何在1台平板电脑上运行。
提前感谢您提供的任何帮助。
修改
用于扫描条形码的代码,如下所示 - 最后的if / else块是我得到的。没有例外:(
string barcodeData = string.Empty;
using (var imageStream = new InMemoryRandomAccessStream())
{
processingImage = true;
var encodingProperties = new ImageEncodingProperties();
encodingProperties.Subtype = "Jpeg";
encodingProperties.Width = 400;
encodingProperties.Height = 400;
await captureMgr.CapturePhotoToStreamAsync(encodingProperties, imageStream);
await imageStream.FlushAsync();
imageStream.Seek(0);
var bitmap = new WriteableBitmap(400, 400);
bitmap.SetSource(imageStream);
preview1.Source = bitmap; //preview1 is an Image control to display the captured image
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(imageStream);
imageStream.Seek(0);
var bitmapDecoder = await BitmapDecoder.CreateAsync(BitmapDecoder.JpegDecoderId, imageStream);
var data = await bitmapDecoder.GetPixelDataAsync(
BitmapPixelFormat.Bgra8,
BitmapAlphaMode.Straight,
new BitmapTransform(),
ExifOrientationMode.IgnoreExifOrientation,
ColorManagementMode.DoNotColorManage
);
if (data != null)
{
BarcodeReader barcodeReader = new BarcodeReader();
var result = barcodeReader.Decode(
data.DetachPixelData(),
(int)bitmapDecoder.PixelWidth,
(int)bitmapDecoder.PixelHeight,
ZXing.RGBLuminanceSource.BitmapFormat.BGR32
);
if (result != null)
{
//Barcode found
}
else
//No data found.
}
}
答案 0 :(得分:5)
我猜你正在使用ZXing.NET库。 你有没有考虑过转移到另一个条码扫描器库?
访问"问题"在ZXing.NET Library中,您可以看到还有很多针对Windows Phone的漏洞(也应该是Window Store)。
http://zxingnet.codeplex.com/workitem/list/basic
其中一个引起了我的注意。看看这个评论:
虽然WP样本都是针对Silverlight的,但你不要忘记新的WP8.1基础是WinRT - 所以我建议你使用WinRT样本作为基础。
我也尝试过这样做,但事实是,ZXing在WinRT通用应用程序中缺少很多自动取款机 - 它速度慢,不可靠,而且几乎没有认识到这一点。
我不知道这有多可靠,但最后一次更新项目的时间是4月7日!!!!
你应该 真的 考虑改变你的库!
答案 1 :(得分:0)
您好,
我使用ZXing&amp ;;为WinRT创建了一个lib。成像SDK。 它运作良好(但不包括任何其他焦点功能)。 https://github.com/stepheUp/VideoScanZXing4WP81 您可以尝试使用lib和示例应用程序。 它适用于条形码和QRCode(默认条形码,但只需更改扫描功能代码中的可选参数即可使用QRCode)
希望它有所帮助, 史蒂芬妮