我用XAML & C#编写了一个windows商店应用程序,用来读取平板电脑摄像头上的图像,并使用Zxing的图书馆解码条形码。该代码在具有i5处理器的给定平板电脑上运行良好,而无法在实际平板上运行,而实际平板上有2MP摄像头和“英特尔刺道四核”处理器。
对为什么会发生这种事有什么想法吗?
请让我知道,如果你需要看我的代码,为这个问题的广告,我将分享。
我想知道如何在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.
}
}
发布于 2014-12-17 12:25:23
我想您正在使用ZXing.NET库。你考虑过搬到另一个条形码扫描器库吗?
访问ZXing.NET库中的“问题”部分,您可以看到Windows仍然存在许多bug(而且也应该是Windows)。
http://zxingnet.codeplex.com/workitem/list/basic
其中一个引起了我的注意。请看下面的评论:
虽然WP样本都是针对Silverlight的,但您不能忘记新的WP8.1基础是WinRT,所以我建议您使用WinRT示例作为基准。 我也试过这样做,但说实话,ZXing缺乏很多WinRT通用应用程序的自动取款机--它速度慢、不可靠,几乎什么都认不出来。 http://zxingnet.codeplex.com/workitem/13311
我不知道这有多可靠,但最后一次更新项目是在4月7日!
您应该真正地考虑更改您的库!
发布于 2015-12-02 23:51:39
嗨,
我使用WinRT & Imaging为ZXing创建了一个库。它运行良好(但不包括任何额外的焦点功能)。https://github.com/stepheUp/VideoScanZXing4WP81有一个库和一个示例应用程序,您可以尝试。它适用于条形码和QRCode (条形码默认情况下只需将扫描函数代码中的可选参数更改为使用QRCode)。
希望它能帮上忙,Stéphanie
https://stackoverflow.com/questions/27401588
复制