# 다양한 스캔 모드로 QR 코드를 읽는 방법
2025년에는 더 많은 제품이 디지털화되고 항상 온라인 접속이 가능해짐에 따라 QR 코드 읽기가 일상적인 작업이 될 것입니다. 필수 데이터를 간결하고 읽기 전용인 임프린트에 저장하는 것이 이제 표준이 되었으며, 개발자는 다양한 환경에서 해당 정보를 효과적으로 추출할 수 있는 방법을 필요로 합니다.
IronQR 특정 사용 사례에 맞춰 설계된 3가지 QR 코드 읽기 옵션을 제공합니다.
이 실용 가이드에서는 세 가지 방법 모두를 명확한 예시와 함께 설명합니다. 아직 확인하지 않으셨다면, 이미지에서 QR 코드를 읽거나 직접 QR 코드를 작성하는 방법에 대한 이전 가이드를 살펴보세요.
<div class="hsg-featured-snippet">
<h2>다양한 스캔 모드로 QR 코드를 읽는 방법</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronQR/">고급 스캔 옵션을 사용하여 QR 코드를 읽을 수 있는 C# 라이브러리를 다운로드하세요.</a></li>
<li>대상 이미지 파일을 로드합니다.</li>
<li>이미지와 필수 <code>QrScanMode</code> 전달하여 <code>QrImageInput</code> 초기화합니다.</li>
<li><code>QrReader</code> 클래스의 인스턴스를 생성하고 입력 객체를 <code>Read</code> 메서드에 전달합니다.</li>
<li>디코딩된 <code>Value</code> 텍스트에 접근하려면 결과를 검색하거나 좌표 데이터를 얻으려면 <code>Points</code> 배열을 반복합니다.</li>
</ol>
</div>
## QR 코드 스캔 모드 이해하기
IronQR는 `QrScanMode` 열거형을 통해 세 가지 강력한 스캔 모드를 제공합니다:
- **자동 모드** (`QrScanMode.Auto`): 최대 정확도와 신뢰성을 위해 기계 학습 감지와 기본 스캐닝 알고리즘을 결합합니다.
- **기초 스캔 전용 모드** (`QrScanMode.OnlyBasicScan`): QR 코드가 명확히 보이는 경우 빠르고 신뢰할 수 있는 스캐닝을 위해 기존의 이미지 처리 기법을 사용합니다.
- **감지 모델 모드** (`QrScanMode.OnlyDetectionModel`): QR 코드 위치를 감지하기 위해 기계 학습을 활용하며, 좌표 데이터 추출에 이상적입니다.
각 스캔 방법을 자세히 살펴보겠습니다.
<hr />
## 기본 스캔 모드만 지원
기본 스캔 모드에서만 머신 러닝을 사용하지 않고 기존 이미지 처리 알고리즘을 사용합니다. QR 코드가 선명하게 보이고 위치가 적절할 경우 이 방법은 빠르고 효율적입니다. 하지만 모서리 세 칸을 읽을 수 있다면 손상된 QR 코드에서도 여전히 작동합니다.
```csharp
:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-basic.cs
```
### 스캔 입력
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/qr/how-to/read-qr-codes-with-scan-modes/damaged-qr.webp" alt="손상된 QR 코드" class="img-responsive add-shadow" />
</div>
</div>
### 저장된 텍스트 파일
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/qr/how-to/read-qr-codes-with-scan-modes/text-file.webp" alt="텍스트 파일" class="img-responsive add-shadow" />
</div>
</div>
<hr />
## 자동 스캔 모드
자동 스캔 모드는 기본 모드(for `QrScanMode`)이며 가장 다재다능한 옵션입니다. 이 시스템은 머신러닝 기반 감지 기술과 기존 스캐닝 알고리즘을 자동으로 결합하여 다양한 이미지 환경에서 최상의 결과를 제공합니다.
예제는 이미지를 로드하고 `Auto` 모드를 활성화하는 것을 보여줍니다. 그런 다음 이미지를 스캔하고 발견된 모든 QR 코드를 리스트에 수집합니다. 마지막으로 `results` 컬렉션을 통과하며 각 값의 텍스트를 콘솔에 출력합니다 (이 경우 URL만).
```csharp
:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-auto.cs
```
### 스캔 입력
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/qr/how-to/read-qr-codes-with-scan-modes/cup.webp" alt="카페 웹사이트 링크가 있는 컵" class="img-responsive add-shadow" />
</div>
</div>
### 콘솔 디스플레이
IronQR 통해 사진을 스캔하면 카페 웹사이트의 URL이 기록됩니다.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/qr/how-to/read-qr-codes-with-scan-modes/website-console.webp" alt="웹사이트 URL의 콘솔 출력" class="img-responsive add-shadow" />
</div>
</div>
<hr />
## 감지 모델 모드
탐지 모델 모드는 이미지 내 QR 코드 위치를 감지하기 위해 머신 러닝을 특별히 사용합니다. 이러한 특성 덕분에 공간 분석 및 컴퓨터 비전 응용 분야에 매우 유용합니다. 그것이 사용하는 좌표 시스템은 시작점이 `(0, 0)`에 있습니다.
일반적으로 QR 스캐너는 세 개의 찾기 패턴에 의존하는 표준 디코딩 알고리즘을 사용하지만, 이 모델은 ID의 네 개의 정점을 모두 캡처합니다. `result` 객체는 위치 데이터를 검색하기 위해 반복할 수 있는 `Points` 컬렉션을 포함합니다.
이 코드는 이전 예제에서 사용했던 컵 사진을 재사용하여 이미지 내 위치 값을 감지하는 방법을 보여줍니다.
[[i:(이 함수가 반환하는 좌표는 왼쪽 위, 오른쪽 위, 왼쪽 아래, 그리고 마지막으로 오른쪽 아래 순서로 엄격하게 "지그재그" 형태로 저장됩니다.)]]
```csharp
:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-detection-model.cs
```
### 라벨이 붙은 컵 이미지
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/qr/how-to/read-qr-codes-with-scan-modes/labelled-cup.webp" alt="라벨이 붙은 컵" class="img-responsive add-shadow" />
</div>
</div>
### 라벨이 붙은 콘솔
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/qr/how-to/read-qr-codes-with-scan-modes/labelled-console.webp" alt="라벨이 붙은 콘솔" class="img-responsive add-shadow" />
</div>
</div>
<hr />
## 스캐닝 방법 비교
<table class="tg">
<thead>
<tr>
<th class="tg-fymr">기능( <code>QRScanMode</code> )</th>
<th class="tg-fymr">기본 스캔 (기본 스캔 <code>OnlyBasicScan</code> )</th>
<th class="tg-fymr">자동 스캔 ( <code>Auto</code> )</th>
<th class="tg-fymr">탐지 모델 ( <code>OnlyDetectionModel</code> )</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tg-0pky"><strong>산출</strong></td>
<td class="tg-0pky">디코딩된 텍스트(값)</td>
<td class="tg-0pky">디코딩된 텍스트(값)</td>
<td class="tg-0pky">좌표(점)</td>
</tr>
<tr>
<td class="tg-0pky"><strong>연산</strong></td>
<td class="tg-0pky">전통적인 방식만</td>
<td class="tg-0pky">하이브리드(ML + 기존 방식)</td>
<td class="tg-0pky">머신러닝 전용</td>
</tr>
<tr>
<td class="tg-0pky"><strong>집중하다</strong></td>
<td class="tg-0pky">속도</td>
<td class="tg-0pky">가독성/검색성</td>
<td class="tg-0pky">현지화 / 컴퓨터 비전</td>
</tr>
<tr>
</tr>
</tbody>
</table>
<hr />
## 결론
IronQR의 세 가지 스캔 모드는 모든 QR 코드 판독 시나리오에 맞는 유연성을 제공합니다.
- **자동 스캔** : 일반적인 용도에 최적의 정확성과 신뢰성을 제공합니다.
- **기본 스캔** : 고품질 이미지를 위한 빠르고 효율적인 스캔
- **탐지 모델** : 공간 응용 분야를 위한 위치 인식
각 방법의 장점을 이해함으로써 특정 요구 사항에 맞춰 QR 코드 판독 구현을 최적화할 수 있습니다. 포괄적인 데이터 추출, 초고속 처리 또는 정밀한 위치 감지가 필요하든 IronQR 모든 것을 제공합니다.
더 많은 예시와 자세한 API 정보는 [IronQR 문서를](https://ironsoftware.com/csharp/qr/) 참조하거나 [GitHub 에서 코드 예제를](https://github.com/iron-software/IronQr.Examples) 살펴보세요.
2025년에는 더 많은 제품이 디지털화되고 항상 온라인 접속이 가능해짐에 따라 QR 코드 읽기가 일상적인 작업이 될 것입니다. 필수 데이터를 간결하고 읽기 전용인 임프린트에 저장하는 것이 이제 표준이 되었으며, 개발자는 다양한 환경에서 해당 정보를 효과적으로 추출할 수 있는 방법을 필요로 합니다.
IronQR 특정 사용 사례에 맞춰 설계된 3가지 QR 코드 읽기 옵션을 제공합니다.
이 실용 가이드에서는 세 가지 방법 모두를 명확한 예시와 함께 설명합니다. 아직 확인하지 않으셨다면, 이미지에서 QR 코드를 읽거나 직접 QR 코드를 작성하는 방법에 대한 이전 가이드를 살펴보세요.
디코딩된 Value 텍스트에 접근하려면 결과를 검색하거나 좌표 데이터를 얻으려면 Points 배열을 반복합니다.
QR 코드 스캔 모드 이해하기
IronQR는 QrScanMode 열거형을 통해 세 가지 강력한 스캔 모드를 제공합니다:
자동 모드 (QrScanMode.Auto): 최대 정확도와 신뢰성을 위해 기계 학습 감지와 기본 스캐닝 알고리즘을 결합합니다.
기초 스캔 전용 모드 (QrScanMode.OnlyBasicScan): QR 코드가 명확히 보이는 경우 빠르고 신뢰할 수 있는 스캐닝을 위해 기존의 이미지 처리 기법을 사용합니다.
감지 모델 모드 (QrScanMode.OnlyDetectionModel): QR 코드 위치를 감지하기 위해 기계 학습을 활용하며, 좌표 데이터 추출에 이상적입니다.
각 스캔 방법을 자세히 살펴보겠습니다.
기본 스캔 모드만 지원
기본 스캔 모드에서만 머신 러닝을 사용하지 않고 기존 이미지 처리 알고리즘을 사용합니다. QR 코드가 선명하게 보이고 위치가 적절할 경우 이 방법은 빠르고 효율적입니다. 하지만 모서리 세 칸을 읽을 수 있다면 손상된 QR 코드에서도 여전히 작동합니다.
using IronQr;using IronQr.Enum;using IronSoftware.Drawing;using System.IO;using System.Linq;// Load the imagevar bmp = AnyBitmap.FromFile("damaged-qr.png");// Create scan input using Only Basic Scan modevar input = new QrImageInput(bmp, QrScanMode.OnlyBasicScan);// Get the resultvar result = new QrReader().Read(input).FirstOrDefault();// Save the output to a text fileFile.WriteAllText("basic-scan-output.txt", result.Value);
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.IO;
using System.Linq;
// Load the image
var bmp = AnyBitmap.FromFile("damaged-qr.png");
// Create scan input using Only Basic Scan mode
var input = new QrImageInput(bmp, QrScanMode.OnlyBasicScan);
// Get the result
var result = new QrReader().Read(input).FirstOrDefault();
// Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value);
ImportsIronQrImportsIronQr.EnumImportsIronSoftware.DrawingImportsSystem.IOImportsSystem.Linq' Load the imageDim bmp = AnyBitmap.FromFile("damaged-qr.png")' Create scan input using Only Basic Scan modeDim input = New QrImageInput(bmp, QrScanMode.OnlyBasicScan)' Get the resultDim result = (New QrReader()).Read(input).FirstOrDefault()' Save the output to a text fileFile.WriteAllText("basic-scan-output.txt", result.Value)
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Linq
' Load the image
Dim bmp = AnyBitmap.FromFile("damaged-qr.png")
' Create scan input using Only Basic Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyBasicScan)
' Get the result
Dim result = (New QrReader()).Read(input).FirstOrDefault()
' Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value)
스캔 입력
저장된 텍스트 파일
자동 스캔 모드
자동 스캔 모드는 기본 모드(for QrScanMode)이며 가장 다재다능한 옵션입니다. 이 시스템은 머신러닝 기반 감지 기술과 기존 스캐닝 알고리즘을 자동으로 결합하여 다양한 이미지 환경에서 최상의 결과를 제공합니다.
예제는 이미지를 로드하고 Auto 모드를 활성화하는 것을 보여줍니다. 그런 다음 이미지를 스캔하고 발견된 모든 QR 코드를 리스트에 수집합니다. 마지막으로 results 컬렉션을 통과하며 각 값의 텍스트를 콘솔에 출력합니다 (이 경우 URL만).
using System;using IronQr;using IronQr.Enum;using IronSoftware.Drawing;// Load the image filevar bmp = AnyBitmap.FromFile("cup.png");// Create scan input using Auto Scan modevar input = new QrImageInput(bmp, QrScanMode.Auto);// Scan and read all QR codesvar results = new QrReader().Read(input);// Initialize a counter to track the number of QR codesint count = 1;// Loop through each discovered QR codeforeach (var result in results){Console.WriteLine($"QR {count}: {result.Value}"); count++;}
using System;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
// Load the image file
var bmp = AnyBitmap.FromFile("cup.png");
// Create scan input using Auto Scan mode
var input = new QrImageInput(bmp, QrScanMode.Auto);
// Scan and read all QR codes
var results = new QrReader().Read(input);
// Initialize a counter to track the number of QR codes
int count = 1;
// Loop through each discovered QR code
foreach (var result in results)
{
Console.WriteLine($"QR {count}: {result.Value}");
count++;
}
ImportsSystemImportsIronQrImportsIronQr.EnumImportsIronSoftware.Drawing' Load the image fileDim bmp = AnyBitmap.FromFile("cup.png")' Create scan input using Auto Scan modeDim input = New QrImageInput(bmp, QrScanMode.Auto)' Scan and read all QR codesDim results = New QrReader().Read(input)' Initialize a counter to track the number of QR codesDim count AsInteger = 1' Loop through each discovered QR codeFor Each result In resultsConsole.WriteLine($"QR {count}: {result.Value}") count += 1Next
Imports System
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
' Load the image file
Dim bmp = AnyBitmap.FromFile("cup.png")
' Create scan input using Auto Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.Auto)
' Scan and read all QR codes
Dim results = New QrReader().Read(input)
' Initialize a counter to track the number of QR codes
Dim count As Integer = 1
' Loop through each discovered QR code
For Each result In results
Console.WriteLine($"QR {count}: {result.Value}")
count += 1
Next
스캔 입력
콘솔 디스플레이
IronQR 통해 사진을 스캔하면 카페 웹사이트의 URL이 기록됩니다.
감지 모델 모드
탐지 모델 모드는 이미지 내 QR 코드 위치를 감지하기 위해 머신 러닝을 특별히 사용합니다. 이러한 특성 덕분에 공간 분석 및 컴퓨터 비전 응용 분야에 매우 유용합니다. 그것이 사용하는 좌표 시스템은 시작점이 (0, 0)에 있습니다.
일반적으로 QR 스캐너는 세 개의 찾기 패턴에 의존하는 표준 디코딩 알고리즘을 사용하지만, 이 모델은 ID의 네 개의 정점을 모두 캡처합니다. result 객체는 위치 데이터를 검색하기 위해 반복할 수 있는 Points 컬렉션을 포함합니다.
이 코드는 이전 예제에서 사용했던 컵 사진을 재사용하여 이미지 내 위치 값을 감지하는 방법을 보여줍니다.
참고해 주세요: 이 함수가 반환하는 좌표는 왼쪽 위, 오른쪽 위, 왼쪽 아래, 그리고 마지막으로 오른쪽 아래 순서로 엄격하게 "지그재그" 형태로 저장됩니다.
using System;using IronQr;using IronQr.Enum;using IronSoftware.Drawing;using System.Linq;// Load the imagevar bmp = AnyBitmap.FromFile("cup.png");// Create scan input using Detection Model modevar input = new QrImageInput(bmp, QrScanMode.OnlyDetectionModel);// Read QR codevar result = new QrReader().Read(input).FirstOrDefault();// Print position dataif (result != null){ if (result.Points != null) { foreach (var point in result.Points) {Console.WriteLine($"Point: X={point.X}, Y={point.Y}"); } }}
using System;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.Linq;
// Load the image
var bmp = AnyBitmap.FromFile("cup.png");
// Create scan input using Detection Model mode
var input = new QrImageInput(bmp, QrScanMode.OnlyDetectionModel);
// Read QR code
var result = new QrReader().Read(input).FirstOrDefault();
// Print position data
if (result != null)
{
if (result.Points != null)
{
foreach (var point in result.Points)
{
Console.WriteLine($"Point: X={point.X}, Y={point.Y}");
}
}
}
ImportsSystemImportsIronQrImportsIronQr.EnumImportsIronSoftware.DrawingImportsSystem.Linq' Load the imageDim bmp = AnyBitmap.FromFile("cup.png")' Create scan input using Detection Model modeDim input = New QrImageInput(bmp, QrScanMode.OnlyDetectionModel)' Read QR codeDim result = (New QrReader()).Read(input).FirstOrDefault()' Print position dataIf result IsNot Nothing Then If result.PointsIsNot Nothing Then For Each point In result.PointsConsole.WriteLine($"Point: X={point.X}, Y={point.Y}") Next End IfEnd If
Imports System
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.Linq
' Load the image
Dim bmp = AnyBitmap.FromFile("cup.png")
' Create scan input using Detection Model mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyDetectionModel)
' Read QR code
Dim result = (New QrReader()).Read(input).FirstOrDefault()
' Print position data
If result IsNot Nothing Then
If result.Points IsNot Nothing Then
For Each point In result.Points
Console.WriteLine($"Point: X={point.X}, Y={point.Y}")
Next
End If
End If
라벨이 붙은 컵 이미지
라벨이 붙은 콘솔
스캐닝 방법 비교
기능( QRScanMode )
기본 스캔 (기본 스캔 OnlyBasicScan )
자동 스캔 ( Auto )
탐지 모델 ( OnlyDetectionModel )
산출
디코딩된 텍스트(값)
디코딩된 텍스트(값)
좌표(점)
연산
전통적인 방식만
하이브리드(ML + 기존 방식)
머신러닝 전용
집중하다
속도
가독성/검색성
현지화 / 컴퓨터 비전
결론
IronQR의 세 가지 스캔 모드는 모든 QR 코드 판독 시나리오에 맞는 유연성을 제공합니다.
자동 스캔 : 일반적인 용도에 최적의 정확성과 신뢰성을 제공합니다.
기본 스캔 : 고품질 이미지를 위한 빠르고 효율적인 스캔
탐지 모델 : 공간 응용 분야를 위한 위치 인식
각 방법의 장점을 이해함으로써 특정 요구 사항에 맞춰 QR 코드 판독 구현을 최적화할 수 있습니다. 포괄적인 데이터 추출, 초고속 처리 또는 정밀한 위치 감지가 필요하든 IronQR 모든 것을 제공합니다.