Dynamically generate and display QR code Image in ASP.Net Using C#
Hello Friends i am Navid Shaikh ,in this article I will explain how to dynamically generate and display barcode image using ASP.Net in C# .
For generating QR Codes I will make use of QRCoder which is an Open Source Library QR code generator.
QR Code Library
You will need to download the QR code library from the following location and open the project in Visual Studio and build it. Once it is build, you can find the DLL in the Debug folder.
HTML Markup
I have a simple ASP.Net page with a TextBox where the user will type in the barcode to be generated and a Button to trigger. The generated QR code image will be displayed in the Placeholder.
<form id="form1" runat="server">
<asp:TextBox ID="txt_Code" runat="server"></asp:TextBox>
<asp:Button ID="btnCreate" runat="server" Text="Create" onclick="btnCreate_Click" />
<hr />
<asp:PlaceHolder ID="plCode" runat="server" />
</form>
Namespaces
You will need to import the following namespaces.
C#
using QRCoder;
using System.IO;
using System.Drawing;
Generating and displaying QR code image in ASP.Net
The following code is of the Button Click event handler. The Text from the TextBox is passed to the CreateQRCode method of the QRCoder library which returns a Bitmap image.
The Bitmap image is then saved as PNG image in MemoryStream which later is converted to a base64 string and displayed on the page using an Image control.
C#
protected void btnCreate_Click(object sender, EventArgs e)
{
string code = txt_Code.Text;
QRCodeGenerator qrcodeGenerator = new QRCodeGenerator();
QRCodeGenerator.QRCode qrCode = qrcodeGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
imgBarCode.Height = 150;
imgBarCode.Width = 150;
using (Bitmap bitMap = qrCode.GetGraphic(20))
{
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
plCode.Controls.Add(imgBarCode);
}
}
Output
Thank You....................