WPF에서 QR 코드 스캐너를 빌드하는 방법

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

Windows Presentation Foundation (WPF)은 XAML로 정의된 사용자 인터페이스를 가진 Windows 데스크톱 애플리케이션을 빌드하기 위한 .NET Framework입니다. IronQR은 WPF에 직접 통합되어 몇 줄의 C# 코드만을 사용하여 사용자 선택 이미지 파일에서 QR 코드 스캔을 가능하게 합니다.

이 가이드에서는 파일 대화상자를 열고, 선택된 이미지를 로드하며, IronQR을 사용하여 삽입된 QR 코드를 디코딩하는 WPF 애플리케이션을 빌드합니다. 이 abordagem은 PNG, JPEG, BMP, GIF, TIFF 및 다른 일반 이미지 형식을 지원합니다.

필수 조건

  1. .NET 데스크톱 개발 워크로드가 설치된 Visual Studio 2022
  2. .NET 8 이상을 대상으로 하는 WPF 프로젝트

IronQR 설치

Visual Studio의 NuGet 패키지 관리 콘솔을 사용하여 IronQR 라이브러리를 설치하세요. 도구 > NuGet 패키지 관리자 > 패키지 관리 콘솔로 이동하여 다음을 실행합니다:

Install-Package IronQR

또는 NuGet에서 IronQR을 검색하여 최신 버전을 설치하십시오.

WPF 창 레이아웃

스캐너 UI는 Button을 사용하여 파일 대화 상자를 호출하고, TextBlock을 사용하여 디코딩된 결과를 표시합니다. MainWindow.xaml에 다음 마크업을 추가하십시오:

<StackPanel Margin="28" VerticalAlignment="Center">

    <TextBlock Text="WPF QR Code Scanner" FontSize="20" FontWeight="Bold" Margin="0,0,0,16"/>

    <Button x:Name="ScanButton"
            Content="Select Image and Scan QR Code"
            Click="OnScanButtonClicked"
            Padding="12,8"
            Margin="0,0,0,16"
            HorizontalAlignment="Left"/>

    <TextBlock x:Name="ResultLabel"
               Text="Select an image to scan."
               TextWrapping="Wrap"
               FontSize="14"/>

</StackPanel>
<StackPanel Margin="28" VerticalAlignment="Center">

    <TextBlock Text="WPF QR Code Scanner" FontSize="20" FontWeight="Bold" Margin="0,0,0,16"/>

    <Button x:Name="ScanButton"
            Content="Select Image and Scan QR Code"
            Click="OnScanButtonClicked"
            Padding="12,8"
            Margin="0,0,0,16"
            HorizontalAlignment="Left"/>

    <TextBlock x:Name="ResultLabel"
               Text="Select an image to scan."
               TextWrapping="Wrap"
               FontSize="14"/>

</StackPanel>
XML

샘플 입력

아래 QR 코드를 테스트 이미지로 사용하세요. 기기 저장 후 파일 대화 상자를 통해 선택하고 이미지를 선택하고 QR 코드 스캔을 클릭합니다. 디코드된 값은 https://ironsoftware.com로 표시되어야 합니다.**

Sample QR code encoding https://ironsoftware.com for testing the WPF QR scanner

표본 QR 코드 — https://ironsoftware.com을 인코딩

IronQR로 QR 코드 스캔

버튼을 클릭하면 OnScanButtonClicked가 이미지 선택을 위한 파일 대화 상자를 엽니다. 선택된 파일은 AnyBitmap에 로드되어 QrReader.Read로 전달되며, 첫 번째 디코딩된 값은 ResultLabel에 기록됩니다.

OnScanButtonClicked 메서드를 MainWindow.xaml.cs에 추가하십시오:

:path=/static-assets/qr/content-code-examples/get-started/wpf-qr-code-scanner.cs
using IronQr;
using IronSoftware.Drawing;
using Microsoft.Win32;
using System.Windows;

private void OnScanButtonClicked(object sender, RoutedEventArgs e)
{
    // Open a file dialog to select a QR code image
    var dialog = new OpenFileDialog
    {
        Title = "Select a QR code image",
        Filter = "Image Files|*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.tiff"
    };

    if (dialog.ShowDialog() != true) return;

    var imageSource = dialog.FileName;

    // Load the image into IronQR
    var inputBmp = AnyBitmap.FromFile(imageSource);

    // Load the asset into QrImageInput
    QrImageInput imageInput = new QrImageInput(inputBmp);

    // Create a QR Reader object
    QrReader reader = new QrReader();

    // Read the input and get all embedded QR Codes
    IEnumerable<QrResult> results = reader.Read(imageInput);

    // Display the first result
    var firstResult = results.FirstOrDefault();
    ResultLabel.Text = firstResult != null
        ? "Scanned Text: " + firstResult.Value
        : "No QR code found in the selected image.";
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.Win32
Imports System.Windows

Private Sub OnScanButtonClicked(sender As Object, e As RoutedEventArgs)
    ' Open a file dialog to select a QR code image
    Dim dialog As New OpenFileDialog With {
        .Title = "Select a QR code image",
        .Filter = "Image Files|*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.tiff"
    }

    If dialog.ShowDialog() <> True Then Return

    Dim imageSource As String = dialog.FileName

    ' Load the image into IronQR
    Dim inputBmp As AnyBitmap = AnyBitmap.FromFile(imageSource)

    ' Load the asset into QrImageInput
    Dim imageInput As New QrImageInput(inputBmp)

    ' Create a QR Reader object
    Dim reader As New QrReader()

    ' Read the input and get all embedded QR Codes
    Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

    ' Display the first result
    Dim firstResult As QrResult = results.FirstOrDefault()
    ResultLabel.Text = If(firstResult IsNot Nothing, "Scanned Text: " & firstResult.Value, "No QR code found in the selected image.")
End Sub
$vbLabelText   $csharpLabel

OpenFileDialog은 일반적인 이미지 형식으로 필터링된 기본 Windows 파일 선택 기능을 제공합니다. AnyBitmap.FromFile은 PNG, JPEG, BMP, GIF 및 TIFF 입력에 대한 형식 디코딩을 처리하며, QrReader.Read은 감지된 QR 코드마다 하나의 항목을 포함하는 IEnumerable<QrResult>을 반환합니다. FirstOrDefault는 QR 코드가 발견되지 않을 경우 null를 안전하게 반환하여, 유효한 코드가 없는 이미지에서 예외가 발생하지 않도록 합니다.

출력

QR 코드 이미지를 선택하고 스캔 버튼을 클릭하면, 디코딩된 값이 버튼 아래의 TextBlock에 표시됩니다.

WPF QR Code Scanner using IronQR — decoded result displayed in the window

WPF 창에서 렌더링된 QR 코드 값 디코딩

프로젝트 다운로드

완전한 WpfQrScanner 프로젝트를 다운로드하려면 여기를 클릭하십시오.

결론

IronQR은 최소한의 설정만으로 WPF 애플리케이션에 통합됩니다. 단 한 번의 QrReader.Read 호출만으로 데스크톱에서 전체 디코딩 파이프라인을 처리할 수 있습니다. 단일 이미지에서 여러 QR 코드를 스캔하려면 FirstOrDefault을 호출하는 대신 전체 결과 컬렉션을 반복 처리하십시오.

이 동일한 패턴은 이미지 파일 디렉터리를 통해 반복하거나 WPF 미디어 요소로 웹캠 피드에서 프레임을 캡처하여 실시간 스캔을 통해 일괄 처리로 확장됩니다.

QR 코드 읽기 및 사용 가능한 스캔 모드에 대한 자세한 내용은 이미지에서 QR 코드 읽기스캔 모드로 QR 코드 읽기 가이드를 참조하세요.

자주 묻는 질문

WPF QR 코드 스캐너 튜토리얼은 무엇에 대한 내용입니까?

WPF QR 코드 스캐너 튜토리얼은 IronQR을 사용하여 QR 코드 스캐너를 구축하기 위한 단계별 가이드를 제공하며, Windows 데스크톱 애플리케이션에서 이미지 선택을 위한 OpenFileDialog 사용 및 QR 코드 디코딩을 위한 QrReader.Read 방법을 설명합니다.

WPF 애플리케이션에서 IronQR이 QR 코드 스캐닝을 어떻게 용이하게 합니까?

IronQR은 OpenFileDialog를 통해 선택한 이미지에서 QR 코드를 효율적으로 디코딩하는 QrReader.Read와 같은 도구를 제공하여 WPF 애플리케이션에서 QR 코드 스캐닝을 간소화합니다.

WPF에서 QR 코드 스캐너를 구축하는 데 필요한 주요 구성 요소는 무엇입니까?

IronQR과 함께 WPF에서 QR 코드 스캐너를 구축하는 데 필요한 주요 구성 요소는 이미지 선택을 위한 OpenFileDialog와 QR 코드 디코딩을 위한 QrReader.Read 메서드입니다.

IronQR은 다른 이미지 형식에서 QR 코드를 디코딩할 수 있습니까?

예, IronQR은 다양한 이미지 형식에서 QR 코드를 디코딩할 수 있어, WPF 애플리케이션에서 이미지가 다른 파일 타입으로 제공될 때 유연성을 갖춥니다.

기존 WPF 애플리케이션과 IronQR을 통합할 수 있습니까?

물론입니다, IronQR은 기존 WPF 애플리케이션과 통합하여 개발자가 현재 시스템을 대대적으로 재구축하지 않고도 QR 코드 스캐닝 기능을 추가할 수 있게 합니다.

IronQR이 WPF 개발에 적합한 이유는 무엇입니까?

IronQR은 사용 용이성, 강력한 QR 코드 디코딩 기능 및 Windows 데스크톱 애플리케이션으로의 원활한 통합 때문에 WPF 개발에 적합합니다.

WPF QR 코드 스캐너에서 OpenFileDialog가 사용자 경험을 어떻게 향상시키나요?

OpenFileDialog는 이미지 파일 선택을 위한 직관적인 인터페이스를 제공하여 사용자 경험을 향상시키며, 이는 IronQR을 통해 QR 코드를 디코딩하는 데 처리됩니다.

QR 코드 스캐닝 과정에서 QrReader.Read의 역할은 무엇입니까?

QrReader.Read는 선택한 이미지에서 QR 코드를 디코딩하는 과정에서 결정적인 역할을 하며, IronQR의 고급 디코딩 알고리즘을 활용합니다.

WPF 애플리케이션에서 IronQR을 사용하는 데 필수적인 전제 조건이 있습니까?

WPF 애플리케이션에서 IronQR을 사용하려면 개발자가 WPF 개발에 대한 기본적인 이해 및 C#에 대한 친숙함이 필요합니다. IronQR의 간결한 API는 다양한 기술 수준의 개발자에게 접근 가능합니다.

IronQR은 QR 코드 디코딩에서 정밀성을 어떻게 보장합니까?

IronQR은 다양한 QR 코드 복잡도와 이미지 품질을 효율적으로 처리하도록 설계된 고급 알고리즘을 통해 QR 코드 디코딩의 정밀성을 보장합니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 67,270 | 버전: 2026.5 just released
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronQR
샘플을 실행하세요 URL이 QR 코드로 바뀌는 것을 확인해 보세요.