C#에서 오류 수정을 설정하는 방법 | IronQR

C#에서 오류 수정을 설정하는 방법

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

C# 바코드의 오류 수정은 IronBarcode의 QRCodeWriter.CreateQrCode 메서드에서 QrErrorCorrectionLevel 매개변수를 사용하여 설정되며, 네 가지 수준(L, M, Q, H)을 지원하여 손상된 데이터의 7-30%를 복구할 수 있으며, 높은 수준일수록 더 복잡한 QR 코드를 생성합니다.

오류 수정은 시각적 결함이나 인코딩 오류에도 불구하고 바코드 읽기 가능성을 유지하는 능력을 말합니다. 이러한 손상은 인쇄 불완전, 얼룩, 긁힘, 스캔 조건의 변이와 같은 요소로 인해 발생할 수 있습니다. 오류 수정은 특히 C#에서 QR 코드 작업 시 적합한 바코드 인코딩 유형을 결정하는 주요 요인입니다.

일반적으로, 2D 바코드는 다음 요인으로 인해 1D 바코드보다 결함에 대한 내성이 높습니다:

  • 데이터 수용량: 2D 바코드는 1D 바코드보다 더 많은 데이터를 저장하며, 수평 및 수직으로 인코딩합니다. 지원되는 바코드 형식에 대해 더 알아보기.
  • 중복성: 2D 바코드는 데이터 인코딩의 여러 레이어가 있어 바코드의 일부가 손상되어도 남아 있는 부분에서 정보를 추출할 수 있습니다.
  • 압축성: 2D 바코드는 압축된 형태로 제한된 공간에도 적합합니다.
  • 유연성: 2D 바코드는 다양한 각도와 방향에서 스캔할 수 있습니다.

불완전한 바코드와 이미지 보정 시나리오에서는 오류 수정이 특히 중요합니다. 여기서는 스캔 조건이 이상적이지 않은 경우를 고려합니다.

빠른 시작: QR 코드 생성에서 오류 수정 수준 사용

이 짧은 예제는 IronBarcode를 사용하여 오류 수정 수준을 Medium으로 설정하여 QR 코드를 생성하는 방법을 보여줍니다. 개발자는 CreateQrCode 메서드를 사용하여 내용, 크기 및 오류 수정 수준을 지정할 수 있습니다.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/BarCode 설치하기

    PM > Install-Package BarCode
  2. 다음 코드 조각을 복사하여 실행하세요.

    var qr = IronBarCode.QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("qr.png");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronBarcode 사용 시작하기

    arrow pointer


QR 코드에서 오류 수정을 어떻게 조정합니까?

현재 IronBarcode는 포괄적인 바코드 생성 기능의 일부로 QR 코드, 마이크로 QR, rMQR에 오류 수정 설정을 지원합니다. QR 코드 표준에 지정된 네 가지 사전 설정 오류 수정 수준을 모두 지원합니다. The error correction level is adjusted via the QrErrorCorrectionLevel parameter in the QRCodeWriter.CreateQrCode method. 오류 수정의 네 가지 수준은 다음과 같습니다:

  • 가장 높은: Level H. 최대 30%의 데이터를 복구할 수 있습니다.
  • 높음: Level Q. 최대 25%의 데이터를 복구할 수 있습니다.
  • 중간: Level M. 최대 15%의 데이터를 복구할 수 있습니다.
  • 낮음: Level L. 최대 7%의 데이터를 복구할 수 있습니다.

더 높은 오류 수정 수준은 더 복잡한 QR 코드 이미지를 생성하므로 QR 코드를 생성할 때 시각적 선명도와 오류 수정을 균형 있게 조정해야 합니다. 아래 코드 예제는 오류 수정을 설정하는 방법을 보여줍니다:

:path=/static-assets/barcode/content-code-examples/how-to/set-error-correction.cs
// Import the necessary namespace for barcode generation
using IronBarCode;

// Create a QR code with the specified URL, size, and error correction level
GeneratedBarcode mediumCorrection = QRCodeWriter.CreateQrCode(
    "https://ironsoftware.com/csharp/barcode/", // URL to be encoded in the QR code
    500,                                       // Size of the QR code (500x500 pixels)
    QRCodeWriter.QrErrorCorrectionLevel.Medium // Error correction level to handle distortions
);

// Save the generated QR code image as a PNG file with the specified filename
mediumCorrection.SaveAsPng("mediumCorrection.png");
$vbLabelText   $csharpLabel

어느 오류 수정 수준을 선택해야 하나요?

오류 수정 수준의 선택은 특정 사용 사례와 환경에 따라 달라집니다. QR 코드가 물리적 손상, 먼지 또는 부분적 가림에 노출될 수 있는 애플리케이션에서는 더 높은 오류 수정 수준(Q 또는 H)을 권장합니다. 이러한 수준은 QR 코드 복잡성과 크기가 증가하는 비용으로 더 나은 내결함성을 제공합니다.

디지털 디스플레이 또는 고품질 인쇄와 같은 깨끗하고 제어된 환경에서는 더 낮은 오류 수정 수준(L 또는 M)으로 충분할 수 있습니다. 이들은 더 간단하고 덜 조밀한 QR 코드를 생성하여 작은 크기로 더 쉽게 스캔할 수 있습니다. 다음 요소들을 고려하세요:

  • 물리적 환경: 야외 또는 산업 환경은 더 높은 오류 수정의 혜택을 받습니다
  • 인쇄 품질: 낮은 품질의 인쇄는 더 높은 오류 수정을 필요로 합니다
  • 크기 제한: 제한된 공간은 가독성을 위해 더 낮은 오류 수정을 요구할 수 있습니다
  • 스캔 거리: 더 긴 스캔 거리는 단순한 QR 코드에 더 잘 작동합니다

여기서는 비교를 위해 다른 오류 수정 수준을 가진 QR 코드를 생성하는 방법을 보여주는 예제입니다:

using IronBarCode;
using System.Drawing;

// Generate QR codes with all four error correction levels
var content = "https://ironsoftware.com/csharp/barcode/";
int size = 500;

// Create QR codes with different error correction levels
var lowCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)</code>;
var mediumCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)</code>;
var highCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;
var highestCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest)</code>;

// Save each with descriptive filenames
<code>lowCorrection.SaveAsPng("qr_low_correction.png")</code>;
<code>mediumCorrection.SaveAsPng("qr_medium_correction.png")</code>;
<code>highCorrection.SaveAsPng("qr_high_correction.png")</code>;
<code>highestCorrection.SaveAsPng("qr_highest_correction.png")</code>;
using IronBarCode;
using System.Drawing;

// Generate QR codes with all four error correction levels
var content = "https://ironsoftware.com/csharp/barcode/";
int size = 500;

// Create QR codes with different error correction levels
var lowCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)</code>;
var mediumCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)</code>;
var highCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;
var highestCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest)</code>;

// Save each with descriptive filenames
<code>lowCorrection.SaveAsPng("qr_low_correction.png")</code>;
<code>mediumCorrection.SaveAsPng("qr_medium_correction.png")</code>;
<code>highCorrection.SaveAsPng("qr_high_correction.png")</code>;
<code>highestCorrection.SaveAsPng("qr_highest_correction.png")</code>;
$vbLabelText   $csharpLabel

어떤 매개변수가 오류 수정을 제어합니까?

The primary parameter controlling error correction in IronBarcode is the QrErrorCorrectionLevel enumeration. This parameter is passed to the CreateQrCode method and determines how much redundant data is embedded in the QR code. 사용자 정의 QR 코드를 생성할 때, 오류 수정 설정을 다른 스타일링 옵션과 결합할 수 있습니다:

using IronBarCode;

// Create a styled QR code with high error correction
var styledQr = <code>QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;

// Apply custom styling
styledQr.ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SetMargins(10)
    .AddAnnotationTextAboveBarcode("Scan for Details");

// Export with various options
styledQr.SaveAsPng("styled_high_correction.png");
styledQr.SaveAsJpeg("styled_high_correction.jpg");
styledQr.SaveAsPdf("styled_high_correction.pdf");
using IronBarCode;

// Create a styled QR code with high error correction
var styledQr = <code>QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;

// Apply custom styling
styledQr.ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SetMargins(10)
    .AddAnnotationTextAboveBarcode("Scan for Details");

// Export with various options
styledQr.SaveAsPng("styled_high_correction.png");
styledQr.SaveAsJpeg("styled_high_correction.jpg");
styledQr.SaveAsPdf("styled_high_correction.pdf");
$vbLabelText   $csharpLabel

오류 수정이 QR 코드 복잡성에 영향을 미치는 이유는 무엇입니까?

오류 수정은 Reed–Solomon 오류 수정 알고리즘을 사용하여 QR 코드에 잉여 데이터를 추가함으로써 작동합니다. 이 잉여 데이터는 QR 코드 리더가 손실되거나 손상된 데이터 부분을 재구성할 수 있게 합니다. 더 많은 오류 수정이 추가될수록 동일한 정보를 인코딩하는 데 더 많은 모듈(흑백 사각형)이 필요하므로 밀도가 높고 복잡한 패턴이 됩니다.

이 복잡성은 바코드 읽기 설정과 스캔 성능에 실질적으로 영향을 미칩니다. 더 높은 오류 수정 수준은 최적의 성능을 위해 리더 설정의 조정을 요구할 수 있습니다.

다른 오류 수정 수준은 무엇입니까?

아래는 동일한 값을 나타내지만 오류 수정 수준이 다른 QR 코드 이미지 샘플 세트입니다. 관찰된 바와 같이, 더 높은 오류 수정 수준은 더 복잡한 QR 코드 이미지를 생성하여 더 큰 내결함성을 제공합니다.

QR code with highest error correction level showing dense pattern of black and white squares
QR code demonstrating high error correction level with dense data patterns and robust finder patterns
QR code with medium error correction level showing clear data pattern and finder squares
QR code with low error correction level showing standard black and white matrix pattern

언제 더 높은 오류 수정을 사용해야 합니까?

다음과 같은 여러 시나리오에서 더 높은 오류 수정 수준이 권장됩니다.

  1. 산업 애플리케이션: QR 코드가 혹독한 조건에 노출된 제품이나 장비에 사용될 때
  2. 야외 간판: 날씨 피해를 받을 수 있는 야외에 표시되는 QR 코드의 경우
  3. 장기 보관: 몇 년 동안 스캔 가능한 상태로 유지해야 하는 문서나 제품
  4. 마케팅 자료: QR 코드를 부분적으로 가리는 로고나 디자인을 통합할 때

여러 바코드를 읽거나 손상된 이미지를 처리하는 고급 시나리오에서는 더 높은 오류 수정이 추가적인 신뢰성을 제공합니다.

오류 수정이 QR 코드 크기에 어떻게 영향을 미칩니까?

오류 수정은 QR 코드의 물리적 크기와 데이터 용량에 직접적인 영향을 미칩니다. 더 높은 오류 수정 수준은 동일한 양의 데이터를 인코딩하기 위해 더 많은 모듈이 필요하므로, 이는 다음과 같은 결과를 초래할 수 있습니다:

  • 동일한 데이터 콘텐츠에 대한 더 큰 QR 코드
  • 주어진 QR 코드 크기에서의 최대 데이터 용량 감소
  • 작은 크기에서 스캔하기 어려운 더 복잡한 패턴
  • 생성 및 스캔 모두에 대한 처리 시간 증가

수정 수준 간의 시각적 차이점은 무엇입니까?

오류 수정 수준 간의 시각적 차이는 동일한 데이터를 인코딩하는 QR 코드를 비교하면 명확해집니다. 더 낮은 수정 수준은 모듈 수가 적은 더 간단한 패턴을 생성하며, 더 높은 수준은 더 조밀하고 복잡한 패턴을 만듭니다. 이러한 차이는 외관뿐만 아니라 인쇄 및 디스플레이를 위한 실질적인 고려 사항에도 영향을 미칩니다.

더 진보된 바코드 생성 기술을 위해 종합적인 문서를 탐색하고 .NET 애플리케이션에서 최적의 결과를 얻기 위해 오류 수정을 다른 바코드 기능과 통합하는 방법에 대해 알아보십시오.

자주 묻는 질문

바코드 기술에서 오류 수정이란 무엇입니까?

바코드 오류 수정은 시각적 결함이나 인코딩 오류에도 불구하고 바코드의 가독성을 유지하는 기능을 말합니다. IronBarcode는 QrErrorCorrectionLevel 매개변수를 통해 오류 수정을 구현하며, 선택한 레벨에 따라 손상된 데이터의 7~30%를 복구할 수 있습니다.

C#에서 QR 코드를 생성할 때 오류 수정 수준을 어떻게 설정하나요?

IronBarcode의 QRCodeWriter.CreateQrCode 메서드를 사용하여 QrErrorCorrectionLevel 매개변수를 지정함으로써 오류 수정 수준을 설정할 수 있습니다. 이 메서드는 내용, 크기 및 네 가지 오류 수정 수준(L, M, Q, H) 중 하나를 매개변수로 받습니다.

QR 코드에 사용할 수 있는 네 가지 오류 수정 수준에는 무엇이 있습니까?

IronBarcode는 QR 코드에 대해 L(낮음 - 7% 복구), M(중간 - 15% 복구), Q(사분위수 - 25% 복구), H(높음 - 30% 복구)의 네 가지 사전 설정 오류 수정 레벨을 지원합니다. 레벨이 높을수록 QR 코드가 더 복잡해지지만 손상 저항력이 향상됩니다.

어떤 바코드 유형이 오류 수정 설정을 지원합니까?

현재 IronBarcode는 QR 코드, 마이크로 QR 코드 및 rMQR에 대한 오류 수정 수준 설정을 지원합니다. 이러한 2D 바코드 형식은 기존 1D 바코드에 비해 뛰어난 오류 수정 기능을 제공합니다.

2D 바코드가 1D 바코드보다 오류 수정 기능이 더 뛰어난 이유는 무엇일까요?

IronBarcode에서 지원하는 2D 바코드는 더 높은 데이터 용량(가로 및 세로 모두 인코딩)으로 인해 오류 수정 기능이 뛰어나고, 손상되지 않은 부분에서도 데이터를 추출할 수 있는 내장형 중복 기능, 제한된 공간에 적합한 컴팩트한 모양, 다양한 각도에서 스캔할 수 있는 유연성을 제공합니다.

오류 수정 수준을 높여야 하는 경우는 언제인가요?

인쇄 상태가 불량하거나, 물리적 손상(긁힘, 얼룩)이 발생할 가능성이 있거나, 스캔 환경이 까다롭거나, 장기적인 내구성이 요구되는 경우 IronBarcode에서 더 높은 오류 수정 수준을 사용하십시오. 오류 수정 수준이 높을수록 스캔 안정성이 향상되지만 QR 코드의 복잡성이 증가합니다.

하릴 하시미 빈 오마르
소프트웨어 엔지니어
모든 훌륭한 엔지니어처럼, 하이릴은 열정적인 학습자입니다. 그는 C#, Python, Java에 대한 지식을 갈고닦아 Iron Software의 팀원들에게 가치를 더하고 있습니다. 하이릴은 말레이시아의 Universiti Teknologi MARA에서 화학 및 공정 공학 학사 학위를 취득한 후 Iron Software 팀에 합류했습니다.
시작할 준비 되셨나요?
Nuget 다운로드 2,108,094 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

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

빠른 증거를 원하시나요? PM > Install-Package BarCode
샘플을 실행하세요 실이 바코드로 변하는 모습을 지켜보세요.