QR Code Generator in ASP.NET Core Using Zxing.Net


In this article, we will explain how to create a QR Code Generator in ASP.NET Core 1.0, using Zxing.Net.


I tried to create a QR Code Generator in ASP.NET Core, using third party libraries but in most of the cases codes are not fully supported in ASP.NET Core because of some version issues etc. I searched a lot in Google but finally I found “Zxing.Net” and it is a library, which supports decoding and generating of the barcodes. I had a discussion with MicJahn and came up  with a great solution.

Before reading this article, you must read the articles given below for ASP.NET Core knowledge.


A library, which supports decoding and generating of the barcodes (Example: QR Code, PDF 417, EAN, UPC, Aztec, Data Matrix, Codabar) within the images.

Assemblies Required

The assemblies given below are required for QR Code Generator.

using Microsoft.AspNetCore.Razor.TagHelpers;
using System;
using System.IO;
using ZXing.QrCode;

Packages required

We need the packages given below for drawing and creating QR Code Generator.

"CoreCompat.System.Drawing": "1.0.0-beta006",    
"ZXing.Net": "0.15.0"  


QRCodeTagHelper class given below contains QR Code Generator methods etc.

namespace QRCodeApp
public class QRCodeTagHelper : TagHelper
public override void Process(TagHelperContext context, TagHelperOutput output)
var QrcodeContent = context.AllAttributes["content"].Value.ToString();
var alt = context.AllAttributes["alt"].Value.ToString();
var width = 250; // width of the Qr Code
var height = 250; // height of the Qr Code
var margin = 0;

var qrCodeWriter = new ZXing.BarcodeWriterPixelData
Format = ZXing.BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions { Height = height, Width = width, Margin = margin }

var pixelData = qrCodeWriter.Write(QrcodeContent);

// creating a bitmap from the raw pixel data; if only black and white colors are used it makes no difference
// that the pixel data ist BGRA oriented and the bitmap is initialized with RGB
using (var bitmap = new System.Drawing.Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb))
using (var ms = new MemoryStream())

var bitmapData = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, pixelData.Width, pixelData.Height),
System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb);
// we assume that the row stride of the bitmap is aligned to 4 byte multiplied by the width of the image
System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0,
// save to stream as PNG
bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

output.TagName = "img";
output.Attributes.Add("width", width);
output.Attributes.Add("height", height);
output.Attributes.Add("alt", alt);
String.Format("data:image/png;base64,{0}", Convert.ToBase64String(ms.ToArray())));


The code given below will display QR Code Generator.

    ViewData["Title"] = "Home";


A library which supports decoding and generating of barcodes (like QR Code, PDF 417, EAN, UPC, Aztec, Data Matrix, Codabar) within images.

<qrcode alt="QR Code" content="" />


The code Injecting TagHelper given below is in the entire Application.

@addTagHelper "*, QRCodeApp"


The dependencies given below are required to create QR Code Application.

  "dependencies": {
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.1.2",
    "Microsoft.AspNetCore.Mvc.Core": "1.1.2",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.AspNetCore.StaticFiles": "1.1.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "CoreCompat.System.Drawing": "1.0.0-beta006",
    "ZXing.Net": "0.15.0"

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"

  "frameworks": {
    "net452": { }

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true

  "publishOptions": {
    "include": [

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]


QRCode Generator

QRCode Generator


See Also

You can download other ASP.NET Core 1.0 source codes from MSDN Code, using the links, mentioned below.


We learnt how to create a QR Code Generator in ASP.NET Core 1.0 Using Zxing.Net. I hope, you liked this article. Please share your valuable suggestions and feedback.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: