푸터 콘텐츠로 바로가기
IRONQR 사용

ASP.NET .NET Core 에서 QR 코드를 생성하는 방법

QR 코드는 정보를 저장하고 전달하는 편리한 방법을 제공하는 현대 기술의 필수 요소가 되었습니다. 웹 개발에서는 IronQR를 사용하여 ASP.NET Core에서 구현할 QR 코드 생성기가 동적인 QR 코드 생성을 위한 견고한 기능을 제공합니다. QR 코드 생성기는 티켓 시스템, 인증, 재고 관리 등 다양한 용도에 귀중합니다. 이 기사는 IronQR를 사용하여 ASP.NET Core에서 QR 코드를 생성하는 과정에 대해 자세히 설명합니다. ASP.NET Core는 웹 애플리케이션을 구축하는 다목적 프레임워크로, QR 코드 생성에 대한 강력한 기능을 제공합니다. 이 기사에서는 IronQR라는 강력한 라이브러리를 사용하여 ASP.NET Core에서 QR 코드를 생성하는 과정을 탐구할 것이며, 이는 Iron Software의 QR 코드 생성에 사용할 수 있는 것입니다.

ASP.NET Core에서 QR 코드 생성 방법

  1. Visual Studio를 사용하여 ASP.Net 프로젝트 생성
  2. IronQR 라이브러리를 패키지 관리자에서 설치
  3. QR 코드 생성
  4. 형식을 지정하여 QR 코드 생성

IronQR 이해하기

IronQR은 .NET 응용 프로그램을 위한 고성능 QR 코드 생성 라이브러리입니다. 다양한 사용자 정의 옵션과 함께 QR 코드를 생성하기 위한 간단하고 직관적인 API를 제공합니다. IronQR는 .NET Standard를 지원하여 ASP.NET Core를 포함한 다양한 플랫폼과 호환됩니다. IronQR를 사용하여 개발자는 다양한 데이터 유형, 오류 수정 수준, 크기 및 형식으로 QR 코드를 손쉽게 생성할 수 있습니다.

주요 기능

1. QR 코드 읽기 및 생성

IronQR는 QR 코드를 쉽게 생성하고 읽을 수 있습니다. QR 코드를 동적으로 생성하거나 기존 QR 코드에서 정보를 추출해야 할 경우, 이 라이브러리가 도움이 됩니다.

2. 사용자 친화적 API

이 라이브러리는 개발자가 .NET 프로젝트에 빠르게 바코드 기능을 통합할 수 있는 사용자 친화적 API를 제공합니다. 몇 분 안에 QR 코드 작업을 시작할 수 있습니다.

3. 호환성

IronQR는 다양한 .NET 버전을 지원합니다:

  1. C#, VB.NET, F#
  2. .NET Core (8, 7, 6, 5 및 3.1+)
  3. .NET Standard (2.0+)
  4. .NET Framework (4.6.2+)

웹 프로젝트(Blazor & WebForms), 모바일(Xamarin & MAUI), 데스크톱(WPF & MAUI), 콘솔 응용 프로그램을 포함하여 다양한 프로젝트 유형을 포괄합니다.

4. QR 코드 감지를 위한 머신러닝 모델

IronQR는 QR 코드를 감지하기 위한 고급 맞춤형 머신러닝 모델을 사용합니다. 이는 정확하고 신뢰할 수 있는 코드 인식을 보장합니다. 추가적으로, 가벼운 접근을 선호하는 사람들을 위한 슬림 모드 옵션(비ML)도 있습니다.

5. QR 코드 읽기

다양한 이미지 형식에서 QR 코드를 읽을 수 있습니다:

  1. 이미지(jpg, png, svg, bmp)
  2. 다중 페이지 이미지(gif, tif, tiff)
  3. System.Drawing 비트맵
  4. IronDrawing 이미지 (AnyBitmap)

6. QR 코드 작성

IronQR는 다양한 문서 유형에 대한 QR 코드를 작성할 수 있습니다:

  1. 이미지(jpg, png, gif, tiff, bmp)
  2. System.Drawing 이미지
  3. 스트림 (MemoryStream, byte[])
  4. PDF (기존 PDF에 스탬프)

7. QR 코드 스타일링

크기 조정, 여백과 테두리 조정, 색상 변경, 로고 추가를 통해 QR 코드를 사용자 정의합니다.

8. 오류 처리 및 수정

IronQR는 자세한 오류 메시지를 제공하고 사용자 정의 QR 오류 수정 수준을 지원합니다.

이제 ASP.NET Core에서 QR 코드를 생성하는 응용 프로그램을 시작해봅시다.

1단계: Visual Studio를 사용하여 새 ASP.NET 프로젝트 생성

QR 코드 생성에 들어가기 전에, 새 ASP.NET Core 프로젝트를 설정해봅시다. 새 프로젝트를 시작하는 단계는 다음과 같습니다:

Visual Studio에서 새 프로젝트를 생성하고 ASP.Net Core 웹 앱 응용 프로그램 템플릿을 선택하여 시작

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 1 - ASP.NET CORE 웹 애플리케이션 템플릿 선택

프로젝트 이름과 위치를 제공하세요

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 2 - 프로젝트 이름을 지정하고 저장할 위치 선택

필요한 .NET 버전을 선택하세요.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 3 - 올바른 .NET 버전 선택

"생성" 버튼을 클릭하여 템플릿에서 애플리케이션 코드를 생성합니다

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 4 - "생성" 버튼 클릭하여 템플릿 코드 생성

단계 2: 패키지 관리자에서 IronQR 라이브러리 설치

아래와 같이 Visual Studio 패키지 관리자에서 IronQR 라이브러리를 설치하세요.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 5 - Visual Studio 패키지 관리자에서 IronOCR 검색 및 설치

IronQR는 NuGet 패키지 관리자를 통해서도 설치할 수 있습니다.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 6 - NuGet 패키지 관리자에서 IronOCR 검색

단계 3: QR 코드 생성

이제 QR 코드 앱을 만들어 봅시다.

QRCode 모델 생성

using System.ComponentModel.DataAnnotations;

namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText { get; set; }
    }
}
using System.ComponentModel.DataAnnotations;

namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText { get; set; }
    }
}
$vbLabelText   $csharpLabel

QR 코드 컨트롤러 생성

새 컨트롤러를 추가하려면 컨트롤러 폴더를 마우스 오른쪽 버튼으로 클릭하고 아래와 같이 이름을 제공하십시오.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 7 - 폴더를 클릭하여 새 컨트롤러 추가하고 이름 부여

빈 컨트롤러를 선택하세요.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 8 - 프롬프트에서 빈 컨트롤러 선택

이름을 제공하세요.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 9 - 컨트롤러 이름 지정

다음으로, 아래 코드를 컨트롤러에 통합합니다.

using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;

namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;

namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
$vbLabelText   $csharpLabel

코드 설명

네임스페이스 및 클래스 정의

코드는 필요한 네임스페이스를 가져오는 using 문으로 시작합니다. GenerateQRCode.Controllers 네임스페이스는 QrCodeController 클래스를 포함합니다.

컨트롤러 생성자

QrCodeController 클래스에는 IWebHostEnvironment 매개변수를 받는 생성자가 있습니다. 이 매개변수는 웹 호스팅 관련 작업을 처리하기 위해 ASP.NET Core가 주입합니다.

Action 방법

  • Index(): 이 메소드는 접근 시 뷰(아마도 HTML 페이지)를 반환합니다. QR 코드 생성과 직접적인 관련은 없어 보입니다.
  • CreateQRCode(QRCodeModel generateQRCode): 이 메소드는 QR 코드 생성 로직의 핵심입니다. QR 코드 텍스트를 포함하는 것으로 추정되는 QRCodeModel 객체를 매개변수로 받습니다.

방법 내부

  • 생성된 QR 코드 이미지 저장 경로를 구성합니다.
  • QrWriter.Write(generateQRCode.QRCodeText)를 사용하여 QR 코드 객체 생성.
  • QR 코드를 비트맵 이미지로 저장합니다.
  • 웹 요청 세부 정보를 기반으로 이미지 URL을 구성합니다.
  • 이미지 URL로 ViewBag.QrCodeUri 속성 설정.
  • 이 과정에서 예외가 발생하면 던져집니다.

QR 코드 생성

실제 QR 코드 생성은 CreateQRCode 메소드 내에서 이루어집니다. QrWriter.Write(generateQRCode.QRCodeText) 호출은 제공된 텍스트를 기반으로 QR 코드 객체를 만듭니다.

이미지 저장

생성된 QR 코드는 qrImage.SaveAs(filePath)를 사용하여 비트맵 이미지로 저장됩니다. 이미지 파일 경로는 웹 루트 경로와 원하는 파일 이름을 기반으로 구성됩니다.

이미지 URL

imageUrl은 웹 요청의 스키마, 호스트 및 경로 기본값을 사용하여 구성됩니다. 이 URL은 생성된 QR 코드 이미지에 접근할 수 있는 위치를 가리킵니다. 전체적으로 이 컨트롤러는 QR 코드 생성, 이미지 저장, 그리고 추가 사용을 위한 이미지 URL 제공을 처리합니다.

컨트롤러에 뷰 추가

새 뷰를 추가하려면 CreateQRCode 액션 메서드에서 마우스 오른쪽 버튼을 클릭합니다. QrCodeController 클래스에서.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 10 - `QrCodeController` 클래스에 새 뷰 추가

"뷰 추가"를 선택한 다음 "Razor 뷰"를 선택합니다. "추가" 버튼을 클릭합니다.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 11 - 뷰 추가 옵션을 선택한 다음 Razor View, 그 후 추가

그런 다음 "생성" 템플릿과 이전에 생성된 모델 클래스를 선택합니다.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 12 - 이전에 생성한 `Create` 템플릿 선택

이제 뷰에 아래 코드를 대체합니다.

@model GenerateQRCode.Models.QRCodeModel

@{
    ViewData["Title"] = "Generate QR Code";
}

<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="CreateQRCode">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="QRCodeText" class="control-label"></label>
                <input asp-for="QRCodeText" class="form-control" />
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
                <a href="#" class="btn btn-primary">Create QR Code</a>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@model GenerateQRCode.Models.QRCodeModel

@{
    ViewData["Title"] = "Generate QR Code";
}

<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="CreateQRCode">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="QRCodeText" class="control-label"></label>
                <input asp-for="QRCodeText" class="form-control" />
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
                <a href="#" class="btn btn-primary">Create QR Code</a>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
$vbLabelText   $csharpLabel

앱이 시작될 때 POST 요청에 대한 오류를 발생시키지 않도록 인덱스 액션 메서드에서도 동일하게 수행합니다.

이제 Program.cs에서 다음 코드를 변경하여 위의 뷰를 기본 경로로 만듭니다.

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}"
);
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}"
);
$vbLabelText   $csharpLabel

이 작업은 기본 경로를 HomeController에서 QrCodeController로 수정합니다.

이제 프로젝트를 컴파일하고 실행합니다.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 13 - 프로젝트의 예시 홈페이지

텍스트 상자에 원하는 텍스트를 입력하고 '생성'을 클릭합니다. 아래와 같이 새로운 QR 코드가 생성됩니다.

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 14 - 텍스트를 입력하고 생성 버튼을 클릭하여 IronQR을 이용해 새 QR 코드 생성

QR 코드에 스타일 추가

QrStyleOptions는 QR 코드 생성을 스타일링하는 데 사용됩니다.

[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");

        // Create a QR Code object
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px size
            Margins = 10,     // px margins
            Color = Color.YellowGreen // custom color
        };

        // Save QR Code with style options as a bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);

        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");

        // Create a QR Code object
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px size
            Margins = 10,     // px margins
            Color = Color.YellowGreen // custom color
        };

        // Save QR Code with style options as a bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);

        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}
$vbLabelText   $csharpLabel

산출

ASP .NET Core에서 QR 코드를 생성하는 방법: 그림 15 - 프로그램을 통해 QR 코드 색상 수정

라이선스 (체험판 이용 가능)

IronQR을 테스트하려는 개발자는 여기에서 체험판 라이센스를 사용할 수 있습니다. 이 라이센스 키는 appSettings.json 파일에 배치되어야 합니다. 그렇게 하여 위의 이미지에 표시된 워터마크를 제거합니다.

{
  "IronQr.License.LicenseKey": "My key"
}

결론

이 기사에서는 IronQR을 사용하여 ASP.NET Core에서 QR 코드를 생성하는 방법을 탐구했습니다. IronQR의 기능을 활용하여 개발자는 웹 애플리케이션에 QR 코드 생성 기능을 쉽게 통합할 수 있습니다. 티켓팅, 인증, 정보 공유 등 다양한 용도로, QR 코드는 데이터를 효율적으로 전송하는 다목적 솔루션을 제공합니다. IronQR을 사용하면 ASP.NET Core에서 QR 코드를 생성하고 맞춤화하는 것이 그 어느 때보다 쉬워졌습니다. QR 코드 생성을 ASP.NET Core 프로젝트에 통합하여 동적 데이터 인코딩 및 공유의 가능성을 열어보세요.

자주 묻는 질문

ASP.NET Core 에서 QR 코드를 어떻게 생성할 수 있나요?

ASP.NET Core 에서 QR 코드를 생성하려면 IronQR 라이브러리를 사용할 수 있습니다. 먼저 Visual Studio에서 새 ASP.NET 프로젝트를 만들고 패키지 관리자를 통해 IronQR 설치한 다음, 사용하기 쉬운 API를 활용하여 QR 코드를 생성하는 코드를 구현하세요.

ASP.NET Core 에서 QR 코드에 사용할 수 있는 사용자 지정 옵션은 무엇입니까?

IronQR ASP.NET Core 에서 QR 코드에 대한 다양한 사용자 지정 옵션을 제공합니다. 여기에는 크기 조정, 여백 조정, 색상 변경 및 로고 추가가 포함됩니다. 이러한 옵션은 QrStyleOptions 클래스를 사용하여 관리할 수 있습니다.

ASP.NET Core 사용한 QR 코드 생성에서 오류 수정은 어떻게 작동하나요?

IronQR 사용하면 ASP.NET Core 에서 QR 코드를 생성할 때 오류 수정 수준을 관리할 수 있습니다. 이를 통해 QR 코드가 원하는 수준의 오류 복원력을 갖추게 되어 안정적인 스캔이 가능합니다.

ASP.NET Core 에서 다양한 이미지 형식의 QR 코드를 읽을 수 있나요?

네, ASP.NET Core 의 IronQR 사용하면 jpg, png, svg, bmp, gif, tif, tiff와 ​​같은 다양한 이미지 형식은 물론 System.Drawing 비트맵 및 IronDrawing 이미지(AnyBitmap)에서 QR 코드를 읽을 수 있습니다.

정식 라이선스 없이 IronQR 테스트해 볼 수 있을까요?

네, Iron Software 웹사이트에서 IronQR 평가판 라이선스를 받으실 수 있습니다. 평가판을 사용하면 라이브러리를 테스트하고, 테스트 단계에서 생성된 QR 코드에서 워터마크를 제거할 수 있습니다. 이를 위해서는 appSettings.json 파일에 라이선스를 추가하면 됩니다.

웹 애플리케이션에서 QR 코드를 사용하면 어떤 이점이 있나요?

QR 코드는 효율적인 데이터 저장 및 전송을 가능하게 하므로 웹 애플리케이션에 유용합니다. 특히 티켓팅 시스템, 인증, 재고 관리와 같은 애플리케이션에서 정보를 인코딩하고 공유하는 동적인 방법을 제공하여 유용하게 활용될 수 있습니다.

머신러닝은 ASP.NET Core 에서 QR 코드 감지 기능을 어떻게 향상시키나요?

IronQR 고급 맞춤형 머신러닝 모델을 활용하여 QR 코드를 감지함으로써 높은 정확도와 신뢰성을 보장합니다. 보다 간편한 솔루션을 선호하는 사용자를 위해 머신러닝을 사용하지 않는 슬림 모드도 제공됩니다.

조르디 바르디아
소프트웨어 엔지니어
조르디는 Iron Software에서 일하지 않을 때는 Python, C#, C++에 가장 능숙하며 게임 프로그래밍을 합니다. 제품 테스트, 제품 개발 및 연구를 담당하며 지속적인 제품 개선에 크게 기여하고 있습니다. 다양한 경험은 그에게 끊임없는 도전과 흥미를 제공하며, Iron Software에서 일하는 가장 큰 장점 중 하나라고 합니다. 조르디는 플로리다주 마이애미에서 자랐으며 플로리다 대학교에서 컴퓨터 과학과 통계학을 전공했습니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me