
.NET 6에서 QRCoder와 IronQR 사용하여 QR 코드를 생성하는 방법 비교
QR 코드 생성 in C#
C# 애플리케이션에서 QR 코드를 생성하는 것은 제품 식별, 티켓 발권, URL 및 기타 데이터의 공유를 쉽게 하기 위해 개발자에게 일반적인 요구사항입니다. C#에서 QR 코드를 생성할 수 있는 여러 라이브러리가 있습니다. 두 가지 주목할 만한 옵션은 QRCoder와 IronQR입니다. .NET 6으로 작업하는 개발자를 위한 성능, 사용 편의성 및 다른 관련 요소들을 비교하여 양쪽을 탐색할 것입니다. 이 기사에서는 이러한 라이브러리의 기능, 사용의 용이성, 라이선스 등을 자세히 비교하며, 사용 예제 코드를 통해 그들의 사용 방법을 설명할 것입니다.
QRCoder 및 IronQR를 .NET 6에서 사용하여 QR 코드를 생성하는 방법
- QR 코드를 생성하기 위한 새로운 Visual Studio 프로젝트 만들기
- QRCoder와 IronQR NuGet 패키지를 설치하여 비교
- QRCoder와 IronQR를 사용하여 QR 코드 생성
- QRCoder와 IronQR와 함께하는 사용자 정의 옵션
QRCoder
QRCoder는 C#으로 작성된 오픈 소스 라이브러리로, ISO/IEC 18004에서 정의한 QR 코드를 .NET 애플리케이션에서 생성할 수 있게 해주는 구현을 제공합니다. 다른 라이브러리나 네트워크 스택에 의존하지 않는 경량의 사용이 쉬운 라이브러리입니다.
QRCoder의 주요 기능과 이점은 다음과 같습니다:
1. 사용의 용이성
C# QRCoder는 개발자가 최소한의 노력을 들여 QR 코드/QR 코드 텍스트를 생성할 수 있도록 하는 간단하고 직관적인 API를 제공합니다. 그의 간단함은 모든 수준의 개발자가 그들의 프로젝트에 신속하게 QR 코드 생성을 통합할 수 있도록 합니다.
2. 광범위한 사용자 정의 옵션
QRCoder의 특징 중 하나는 특정 요구에 맞춰 QR 코드를 사용자 정의 할 수 있는 능력입니다. 개발자는 오류 수정 레벨, 크기, 색상 등의 매개변수를 조정하고 QR 코드 내에 로고나 이미지를 삽입할 수 있습니다.
3. 여러 가지 인코딩 형식
QRCoder는 다양한 인코딩 형식을 지원하여 개발자가 다양한 유형의 데이터를 QR 코드로 인코딩 할 수 있도록 합니다. 평문, URL, 연락처 정보, Wi-Fi 자격 증명 등이든, QRCoder는 다양한 데이터 형식을 처리할 수 있습니다.
4. 높은 품질 출력
C# QRCoder가 생성한 QR 코드는 높은 품질을 자랑하며, 다양한 기기 및 스캐닝 조건에서 읽기와 신뢰성이 보장됩니다. 이 신뢰성은 QR 코드가 물리적 및 디지털 상호작용의 다리 역할을 하는 애플리케이션에서 중요합니다.
5. 오픈 소스와 활발한 개발
C# QRCoder는 오픈 소스 프로젝트로, 개발자가 개발에 기여할 수 있으며 지속적인 개선과 업데이트가 보장됩니다. 이 활발한 커뮤니티 참여는 혁신을 촉진하고, 기술의 끊임없이 진화하는 환경에서 라이브러리가 관련성을 유지하도록 보장합니다.
IronQR
IronQR는 Iron Software가 개발 및 유지하는 강력한 C# QR 코드 라이브러리입니다. C# 소프트웨어 엔지니어가 .NET 애플리케이션 및 웹 사이트에서 QR 코드를 탐지, 읽기 및 생성할 수 있게 합니다. IronQR의 주요 기능은 다음과 같습니다:
QR 코드 생성
IronQR는 고도로 사용자 정의가 가능한 QR 코드 생성을 가능하게 합니다. 크기 조정, 여백, 테두리 및 재색상 같은 다양한 옵션으로 QR 코드를 만들 수 있습니다.
using IronQr;
using IronSoftware.Drawing;
public class Program
{
public static void Main()
{
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
}
}Imports IronQr
Imports IronSoftware.Drawing
Public Class Program
Public Shared Sub Main()
' Prepare a QR Code object
Dim theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Dim myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
End Sub
End ClassQR 코드 읽기
IronQR는 QR 코드 감지를 위한 고급 머신 러닝 모델을 사용합니다. 이 모델은 정확하고 빠른 QR 코드 읽기를 보장합니다. IronQR는 다양한 이미지 형식(JPG, PNG, SVG, BMP 및 gif, tiff 같은 다중 페이지 이미지)에서 QR 코드를 읽는 것을 지원합니다.
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
// Read QR code
var inputBmp = AnyBitmap.FromFile("awesome.png");
// Load the image into QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
// Create the QR Reader object
QrReader reader = new QrReader();
// Read the Input and get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
}
}Imports IronQr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Public Class Program
Public Shared Sub Main()
' Read QR code
Dim inputBmp = AnyBitmap.FromFile("awesome.png")
' Load the image into QrImageInput
Dim imageInput As New QrImageInput(inputBmp)
' Create the 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)
End Sub
End Class크로스 플랫폼 호환성
- 데스크탑: Windows 데스크탑 애플리케이션(WPF & MAUI)과 작동합니다.
- 모바일: Xamarin 및 MAUI와 호환됩니다.
- 웹: Blazor 및 WebForms를 지원합니다.
- 콘솔: 애플리케이션 및 라이브러리 환경.
- 클라우드: Docker, Azure 및 AWS.
데이터 인코딩
QR 코드에 다양한 유형의 데이터(텍스트, URL, 바이트, 숫자)를 인코딩할 수 있습니다.
오류 수정
IronQR은 상세한 오류 메시지와 사용자 정의 오류 수정 옵션을 제공합니다.
수백만 명의 신뢰, IronQR는 전 세계 엔지니어들에게 신뢰성 및 사용 용이성을 위해 신뢰받고 있습니다. IronQR를 시작하려면 NuGet을 통해 설치할 수 있습니다.
1단계: QR 코드를 생성하기 위한 새로운 Visual Studio 프로젝트 만들기
코드를 시작하려면 Visual Studio 프로젝트를 만듭시다. Microsoft Visual Studio 2022를 열고 "새 프로젝트 생성" 옵션을 선택합니다.

템플릿 목록에서 콘솔 애플리케이션 템플릿을 선택하십시오

그런 다음 프로젝트 이름과 솔루션 이름을 제공하십시오. 프로젝트 파일을 저장할 경로를 선택하십시오

필요한 .NET 버전을 선택하세요. 이 문서를 작성할 때 최신 .NET 8 프레임워크를 사용하겠습니다.

생성 버튼을 클릭하면 프로젝트가 만들어지고 개발할 준비가 됩니다.
2단계: QRCoder 및 IronQR NuGet Install-Package
QRCoder NuGet 패키지는 아래와 같이 Visual Studio NuGet 패키지 관리자를 사용하여 설치할 수 있습니다.

또는 다음 명령어를 사용하여 NuGet 패키지 관리자 콘솔에서 설치하십시오
QRCoder NuGet 패키지는 여기 NuGet 웹사이트에 있습니다

IronQR도 아래와 같이 Visual Studio NuGet 패키지 관리자를 사용하여 유사하게 설치할 수 있습니다.

또한 NuGet 패키지 관리자 콘솔에서 다음 명령을 사용하십시오

3단계: QRCoder 및 IronQR을 사용하여 QR 코드 생성
두 라이브러리에서 QR 코드를 생성하는 것은 간단한 코드가 필요합니다. 살펴봅시다
QRCoder
다음 코드는 QRCoder를 사용하여 첫 번째 QR 코드를 생성하는 방법을 보여줍니다
using QRCoder;
using System.Drawing;
using System.IO;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
// Initialize QRCodeGenerator
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
// Create QR code data
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
// Initialize the QR code with the data
using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
{
// Generate the QR code's graphic and store it in a byte array
byte[] qrCodeImage = qrCode.GetGraphic(20);
// Convert the byte array to an image format and save it to disk
using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
{
file.Save("QrCoderDemo1.png");
}
}
}
}
}Imports QRCoder
Imports System.Drawing
Imports System.IO
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
' Initialize QRCodeGenerator
Using qrGenerator As New QRCodeGenerator()
' Create QR code data
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
' Initialize the QR code with the data
Using qrCode As New BitmapByteQRCode(qrCodeData)
' Generate the QR code's graphic and store it in a byte array
Dim qrCodeImage() As Byte = qrCode.GetGraphic(20)
' Convert the byte array to an image format and save it to disk
Using file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Using
End Sub
End Class
End Namespace코드 설명
QRCodeGenerator를 초기화하고CreateQrCode메서드를 호출하여 QR 코드 데이터를 생성하세요.BitmapByteQRCode클래스를 사용하여GetGraphic메서드를 통해 QR 코드 데이터로부터 바이트 배열을 생성하세요.Image.FromStream을 사용하여 바이트 배열을 이미지로 변환하세요.- 생성된 이미지를 디스크에 저장하십시오.
산출

IronQR
다음 코드는 IronQR을 사용하여 QR 코드를 생성하는 방법을 보여줍니다:
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
{
public class Program
{
public static void Main()
{
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
}
}
}Imports IronQr
Imports IronSoftware.Drawing
Namespace QrCodeWithIronQR
Public Class Program
Public Shared Sub Main()
' Prepare a QR Code object
Dim theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Dim myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
End Sub
End Class
End Namespace이미 코드의 양에서 차이점을 확인할 수 있습니다. IronQR 코드 생성은 더 적은 코드가 필요합니다.
코드 설명
- 원하는 내용을 전달하여
QrWriter.Write메서드를 사용하여 QR 코드를 생성하세요. Save메서드를 사용하여 메모리에 QR 코드를 저장하세요.SaveAs을 사용하여 QR 코드 이미지를 디스크에 저장하세요.
산출
라이브러리의 체험판을 사용 중이기 때문에 출력에 IronQR 워터마크가 있습니다. 라이센스 버전을 사용하면 이것이 제거됩니다.

4단계: QRCoder 및 IronQR의 사용자 지정 옵션
두 라이브러리는 사용자 지정 옵션을 지원합니다. 사용 가능한 몇 가지 옵션을 살펴보겠습니다
QRCoder에서 QR 코드 색상을 아래와 같이 설정할 수 있습니다:
using QRCoder;
using System.Drawing;
using System.IO;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
// Initialize QRCodeGenerator
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
// Create QR code data
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
// Initialize the QR code with the data
using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
{
// Generate the QR code's graphic, specifying foreground and background colors
byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);
// Convert the byte array to an image format and save it to disk
using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
{
file.Save("QrCoderDemo1.png");
}
}
}
}
}Imports QRCoder
Imports System.Drawing
Imports System.IO
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
' Initialize QRCodeGenerator
Using qrGenerator As New QRCodeGenerator()
' Create QR code data
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
' Initialize the QR code with the data
Using qrCode As New BitmapByteQRCode(qrCodeData)
' Generate the QR code's graphic, specifying foreground and background colors
Dim qrCodeImage() As Byte = qrCode.GetGraphic(20, Color.Red, Color.Green)
' Convert the byte array to an image format and save it to disk
Using file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Using
End Sub
End Class
End Namespace코드 설명
QRCodeGenerator를 초기화하고CreateQrCode메서드를 호출하여 QR 코드 데이터를 생성하세요.BitmapByteQRCode클래스를 사용하여GetGraphic메서드를 통해 QR 코드 데이터로부터 바이트 배열을 생성하고 전경색(빨간색)과 배경색(초록색)을 지정하세요.Image.FromStream을 사용하여 바이트 배열을 이미지로 변환하세요.- 생성된 이미지를 디스크에 저장하십시오.
산출

IronQR QR 코드 생성의 색상을 설정하는 코드는 다음과 같습니다:
using IronQr;
using IronSoftware.Drawing;
using System.Drawing;
namespace QrCodeWithIronQR
{
public class Program
{
public static void Main()
{
// Set options
QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);
// Create QR
QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);
// Style options
AnyBitmap logoBmp = new AnyBitmap("logo.png");
QrStyleOptions style = new QrStyleOptions
{
BackgroundColor = Color.Aqua,
Dimensions = 300, // px
Margins = 10, // px
Color = Color.Red,
Logo = new QrLogo
{
Bitmap = logoBmp,
Width = 100,
Height = 100,
CornerRadius = 2
}
};
// Save QR Code
AnyBitmap qrImage = myQr.Save(style);
// Save QR Code to local disk
qrImage.SaveAs("advancedQr.png");
}
}
}Imports IronQr
Imports IronSoftware.Drawing
Imports System.Drawing
Namespace QrCodeWithIronQR
Public Class Program
Public Shared Sub Main()
' Set options
Dim options As New QrOptions(QrErrorCorrectionLevel.Medium, 20)
' Create QR
Dim myQr As QrCode = QrWriter.Write("IronQR Generation Demo 1", options)
' Style options
Dim logoBmp As New AnyBitmap("logo.png")
Dim style As New QrStyleOptions With {
.BackgroundColor = Color.Aqua,
.Dimensions = 300,
.Margins = 10,
.Color = Color.Red,
.Logo = New QrLogo With {
.Bitmap = logoBmp,
.Width = 100,
.Height = 100,
.CornerRadius = 2
}
}
' Save QR Code
Dim qrImage As AnyBitmap = myQr.Save(style)
' Save QR Code to local disk
qrImage.SaveAs("advancedQr.png")
End Sub
End Class
End NamespaceIronQR에서는 많은 사용자 지정 옵션이 있습니다. 위의 프로그램에서 배경색, QR 코드 색상, 여백을 사용자 지정하려고 했습니다. 크기 조절도 가능합니다.
코드 설명
- 먼저 오류 수정 수준을 설정하기 위해
QrOptions객체를 생성하세요. QrWriter.Write메서드로 QR 코드를 준비하세요.QrStyleOptions로 스타일 옵션을 설정하세요.- 배경색, 전경색, 여백, 치수 및 QR 코드의 로고까지 설정합니다.
- QR 코드 이미지를 로컬 디스크에 저장합니다.
산출

라이선스
QRCoder는 MIT 라이선스 기반 패키지이며 커뮤니티의 도움으로 개발되었습니다. 이 패키지는 저예산 프로젝트에 적합합니다. 사용자는 커뮤니티가 문제를 해결할 때까지 기다리거나 코드를 수정하고 승인된 풀 요청과 함께 Git 리포지토리에 코드를 푸시할 수 있습니다.
IronQR은 라이선스가 필요합니다. Iron Software의 지원을 받습니다.
IronQR 체험판 라이선스를 얻을 수 있습니다. 획득한 키는 여기에 있는 appSettings.json 파일에 넣어야 합니다:
{
"IronQr.License.LicenseKey": "myKey"
}
결론
C# QRCoder와 IronQR 중 선택은 최종적으로 프로젝트의 특정 요구 사항에 따라 달라집니다. 많은 맞춤화 옵션을 갖춘 무료 오픈 소스 QR 코드 생성 라이브러리가 필요하다면, C# QRCoder가 단순성과 광범위한 맞춤화 옵션 때문에 선호되는 선택일 수 있습니다.
맞춤화 옵션과 함께 QR 코드 생성뿐 아니라 QR 코드 읽기까지 지원하는 Enterprise급 라이브러리가 필요하다면 IronQR이 궁극적인 선택이 될 것입니다. IronQR 라이브러리와 그 많은 혜택, Iron Software의 지원 기능과 함께 개발자는 Enterprise 어플리케이션을 쉽게 작성할 수 있습니다.

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


