.NET MAUI 条码扫描器

This article was translated from English: Does it need improvement?
Translated
View the article in English

简介

.NET MAUI (.NET多平台应用程序用户界面) 是一个跨平台框架,可帮助在单一代码库中更轻松地创建跨平台应用程序。例如,您可以在一个项目中轻松创建 Microsoft Windows、IOS 和 Android 应用程序。它与其他平台、框架和库的不同之处在于,它允许开发人员在项目中使用本地控件,并为他们提供额外的组件。因此,开发人员可以使用这些预制组件和服务更快地构建应用程序,而无需从头开始编写各方面的代码。

在本文中,我将介绍如何在 .NET MAUI Windows 应用程序中扫描二维码或条形码。

IronBarcode:C# 条码库

IronBarcode 是一种 .NET 库,可帮助在程序中轻松创建条形码。它提供了一套强大而简单的默认应用程序接口。IronBarcode 库在对象级别上提供了生成和读取 QR 码或其他条形码的功能,因此您可以通过调用它们的方法一次开发一个条形码,而无需担心创建条形码对象的细节和事先了解相关知识。此外,该库无需加载任何外部依赖项即可运行,使用 NuGet 软件包管理器即可轻松下载。

IronBarcode 支持多种 QR 和现代条形码格式,如 Code 39、Code 128、PDF417 等等。您还可以将此 .NET 库用作 QR 码阅读器和生成器。它能将输入数据解码为人类可读的文本。您可以从图像、流、GIF 等中获取输入数据。本文还将介绍如何在 .NET MAUI 应用程序中使用 IronBarcode 库来读取和扫描二维码。

在 .NET MAUI 应用程序中读取和扫描条形码的步骤

请按照以下步骤在 .NET MAUI 应用程序中读取 QR 码。

先决条件

1.Visual Studio 2022

2.在 Visual Studio 中运行的 .NET MAUI 项目

3.通过稳定的互联网安装用于条码扫描的 IronBarcode 库

假设您已具备上述先决条件,则可进入下一步。

安装 IronBarcode 库

我们可以使用 NuGet 软件包控制台安装 IronBarcode 库。在控制台中编写以下命令

Install-Package BarCode

该控制台命令将下载 MAUI 项目中最新版本的 IronBarcode 库。当然,你也可以随时检查并搜索 NuGet 软件包库的最新版本,在NuGet 网站.

前端

第一步,我们必须创建前端设计。

我们将创建一个由两个按钮、一个文本区域和一个图像框组成的布局。一个按钮用于选择条形码,另一个按钮用于复制条形码文本。图像框将显示所选图像。

用以下内容替换 MainPage.xaml 文件中的内容:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MAUI_Barcode.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="ImageSelect"
                Text="Select Barcode"
                SemanticProperties.Hint="Select Image"
                Clicked="SelectBarcode"
                HorizontalOptions="Center" />
            <Image
                x:Name="barcodeImage"
                SemanticProperties.Description="Selected Barcode"
                HeightRequest="200"
                HorizontalOptions="Center" />
            <Editor x:Name="outputText"
                Placeholder="Output text"
                HeightRequest="100"
                WidthRequest="500" />
            <Button
                x:Name="copyText"
                Text="Copy"
                SemanticProperties.Hint="Copy Text"
                WidthRequest="150"
                Clicked="CopyEditorText"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

所有元素都是垂直堆叠,位置居中。您可以根据自己的喜好进行更改。

使用 IronBarcode 扫描条形码

本节将介绍使用 IronBarcode 库扫描条形码的代码。首先,我们将使用 FilePicker 来选择文件并指定图像的文件类型。然后,我们将使用 FullPath 属性获取图像文件的路径,并将图像框的来源设置为 FullPath 值。最后,我们将在BarcodeReaderRead函数中使用path值来获取文本。

private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
Private Async Sub SelectBarcode(ByVal sender As Object, ByVal e As EventArgs)
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})
	Dim imageSource = images.FullPath.ToString()
	barcodeImage.Source = imageSource
	Dim result = BarcodeReader.Read(imageSource).First().Text
	outputText.Text = result
End Sub
VB   C#

下图所示代码将用于复制文本编辑器的文本,并向用户显示文本已复制的提示信息。

private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
Private Async Sub CopyEditorText(ByVal sender As Object, ByVal e As EventArgs)
	Await Clipboard.SetTextAsync(outputText.Text)
	Await DisplayAlert("Success", "Text is copied!", "OK")
End Sub
VB   C#

您可以在以下网站上获取这个用于读取和扫描代码的项目 GitHub().

输出

运行项目后,您将看到以下输出。图片未显示是因为尚未选中。

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 1: 未选择图像时的输出

未选择图像时的输出

选择条形码后,就会显示如下截图,编辑器中也会显示 QR 码的输出文本。

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 2: 选择图像后输出

选择图像后输出

单击 "复制 "按钮将触发前面提到的警报窗口。

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 3: 复制警报

复制警报

结论

本文介绍了如何使用 IronBarcode 在 .NET MAUI 应用程序中读取条形码。IronBarcode 是一款完整的产品,它包含了所有能够进行条形码操作的必要工具。作为 QR 码阅读器,IronBarcode 的表现非常出色。它能提供预期的精确输出。此外,它还可以读取复杂的条形码。您还可以使用不同的字体创建和自定义条形码。从此处获取更多有关 IronBarcode 的教程文章 链接.

IronBarcode 用于开发目的是免费的。但如果要用于商业用途,则必须购买许可证。您可以通过以下方式获取有关许可证的信息链接.