使用Zxing库解码条形码适用于一台平板电脑,但在另一台平板电脑上不起作用

本文关键字:一台 平板电脑 不起作用 Zxing 条形码 使用 解码 适用于 | 更新日期: 2023-09-27 18:33:53

我用XAML和C#编写了一个Windows应用商店应用程序,用于从平板电脑的网络摄像头读取图像并使用Zxing的lbrary解码条形码。该代码在具有 i5 处理器的给定平板电脑上运行良好,而无法在具有 2MP 摄像头和"英特尔 Baytrail 四核"处理器的实际平板电脑上运行。

关于为什么会发生这种情况的任何想法?

如果您需要查看我将分享的此问题广告的代码,请告诉我。

我想知道相同的代码如何在一台平板电脑上工作,而在另一台平板电脑上失败。

提前感谢您提供的任何帮助。

编辑

用于扫描条形码的代码并如下所示 - 最后一个 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.
                }
            }

使用Zxing库解码条形码适用于一台平板电脑,但在另一台平板电脑上不起作用

我猜你正在使用 ZXing.NET 库。您是否考虑过迁移到另一个条码扫描器库?

访问 ZXing.NET 库中的"问题"部分,您可以看到Windows Phone仍然打开了很多错误(也应该是Window Store(。

http://zxingnet.codeplex.com/workitem/list/basic

其中一个引起了我的注意。看看这个评论:

虽然 WP 示例都面向 Silverlight,但您一定不要忘记新的 WP8.1 基础是 WinRT - 因此我建议您使用 WinRT 示例作为基础。

我试图做同样的事情,但说实话,ZXing 缺少很多 WinRT 通用应用程序的 ATM - 它速度慢、不可靠,几乎无法识别任何东西。

http://zxingnet.codeplex.com/workitem/13311

我不知道这有多可靠,但该项目最后一次更新是在 4 月 7 日!!!

真的应该考虑改变你的图书馆!

嗨,

我使用 ZXing & Imaging SDK 为 WinRT 制作了一个库。它运行良好(但不包括任何其他对焦功能(。https://github.com/stepheUp/VideoScanZXing4WP81您可以尝试一个库和一个示例应用程序。它适用于条形码和QRCode(默认情况下条形码,但只需更改扫描功能代码中的可选参数即可使用QRCode(

希望对您有所帮助,斯蒂芬妮