C#通過第三方組件生成二維碼(QR Code)和條形碼(Bar Code)
用C#如何生成二維碼,我們可以通過現(xiàn)有的第三方dll直接來實(shí)現(xiàn),下面列出幾種不同的生成方法:
1):通過QrCodeNet(Gma.QrCodeNet.Encoding.dll)來實(shí)現(xiàn)
1.1):首先通過VS2015的NuGet下載對應(yīng)的第三方組件,如下圖所示:

1.2):具體生成二維碼方法如下
private void GenerateQRByQrCodeNet()
{
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
QrCode qrCode = new QrCode();
qrEncoder.TryEncode("Hello World. This is Eric Sun Testing...", out qrCode);
GraphicsRenderer renderer = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
using (MemoryStream ms = new MemoryStream())
{
renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, ms);
Image img = Image.FromStream(ms);
img.Save("E:/csharp-qrcode-net.png");
}
}
更多詳細(xì)信息請參考如下鏈接:
http://www.dhdzp.com/article/99215.htm
http://qrcodenet.codeplex.com/
http://stackoverflow.com/questions/7020136/free-c-sharp-qr-code-generator
2):通過ThoughtWorks.QRCode(ThoughtWorks.QRCode.dll)來實(shí)現(xiàn)
1.1):首先通過VS2015的NuGet下載對應(yīng)的第三方組件,如下圖所示:

1.2):具體生成二維碼方法如下
private void GenerateQRByThoughtWorks()
{
QRCodeEncoder encoder = new QRCodeEncoder();
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//編碼方式(注意:BYTE能支持中文,ALPHA_NUMERIC掃描出來的都是數(shù)字)
encoder.QRCodeScale = 4;//大小(值越大生成的二維碼圖片像素越高)
encoder.QRCodeVersion = 0;//版本(注意:設(shè)置為0主要是防止編碼的字符串太長時(shí)發(fā)生錯(cuò)誤)
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//錯(cuò)誤效驗(yàn)、錯(cuò)誤更正(有4個(gè)等級)
encoder.QRCodeBackgroundColor = Color.Yellow;
encoder.QRCodeForegroundColor = Color.Green;
string qrdata = "Hello 世界! This is Eric Sun Testing....";
Bitmap bcodeBitmap = encoder.Encode(qrdata.ToString());
bcodeBitmap.Save(@"E:\HelloWorld.png", ImageFormat.Png);
bcodeBitmap.Dispose();
}
3):通過Spire.BarCode(Spire.BarCode.dll)來實(shí)現(xiàn)
1.1):首先通過VS2015的NuGet下載對應(yīng)的第三方組件,如下圖所示:

1.2):具體生成二維碼方法如下
private void GenerateQRBySpire()
{
BarcodeSettings bs = new BarcodeSettings()
{
Data = "This is qr code: H2AMK-Z3V69-RTJZD-C7JAU-WILL4",
Type = BarCodeType.QRCode,
TopTextColor = Color.Red,
ShowCheckSumChar = false,
ShowText = false
};
//Generate the barcode based on the this.barCodeControl1
BarCodeGenerator generator = new BarCodeGenerator(bs);
Image barcode = generator.GenerateImage();
//save the barcode as an image
barcode.Save(@"E:\barcode-2d.png");
}
1.3):附加具體生成條形碼方法如下
private void GenerateBarCodeBySpire()
{
BarcodeSettings bs = new BarcodeSettings()
{
Data = "This is barcode: H2AMK-Z3V69-RTJZD-C7JAU-WILL4",
ShowCheckSumChar = false,
TopTextColor = Color.Red,
ShowTopText = false,
ShowTextOnBottom = true
};
//Generate the barcode based on the this.barCodeControl1
BarCodeGenerator generator = new BarCodeGenerator(bs);
Image barcode = generator.GenerateImage();
//save the barcode as an image
barcode.Save(@"E:\barcode.png");
}
1.3):上訴代碼我們發(fā)現(xiàn)生成的條形碼和二維碼帶有水印[E-ICEBLUE],如何去除水印呢?請看如下代碼
BarcodeSettings.ApplyKey("......");
請發(fā)送郵件到 sales@e-iceblue.com 免費(fèi)獲取對應(yīng)的 key 值
更多詳細(xì)信息請參考如下鏈接:
http://freebarcode.codeplex.com/
http://www.dhdzp.com/article/99222.htm
4):通過Barcode Rendering Framework(Zen.Barcode.Rendering.Framework.dll)來實(shí)現(xiàn)
4.1):首先通過VS2015的NuGet下載對應(yīng)的第三方組件,如下圖所示:

4.2):具體生成二維碼方法如下
private void GenerateBarCodeByZen()
{
Code128BarcodeDraw barcode128 = BarcodeDrawFactory.Code128WithChecksum;
Image img = barcode128.Draw("Hello World", 40);
img.Save("E:/zenbarcode.gif");
}
4.3):附加具體生成條形碼方法如下
private void GenerateQRByZen()
{
CodeQrBarcodeDraw qrcode = BarcodeDrawFactory.CodeQr;
Image img = qrcode.Draw("Hello World!", qrcode.GetDefaultMetrics(40));
img.Save("E:/zenqrcode.gif");
}
更多詳細(xì)信息請參考如下鏈接:
http://barcoderender.codeplex.com/
5):通過BarcodeLib(BarcodeLib.Barcode.ASP.NET.dll)來實(shí)現(xiàn),下載對應(yīng)dll的連接為 http://www.barcodelib.com/asp_net/
5.1):具體生成二維碼方法如下
private void GenerateQRByBarcodeLib()
{
QRCode qrbarcode = new QRCode();
qrbarcode.Encoding = QRCodeEncoding.Auto;
qrbarcode.Data = "336699885522 This is Eric Sun Testing.";
qrbarcode.ModuleSize = 10;
qrbarcode.LeftMargin = 8;
qrbarcode.RightMargin = 8;
qrbarcode.TopMargin = 8;
qrbarcode.BottomMargin = 8;
qrbarcode.ImageFormat = System.Drawing.Imaging.ImageFormat.Gif;
// Save QR Code barcode image into your system
qrbarcode.drawBarcode("E:/csharp-qrcode-lib.gif");
}
5.2):附加具體生成條形碼方法如下
private void GenerateLinearByBarcodeLib()
{
Linear barcode = new Linear();
barcode.Type = BarcodeType.CODE128;
barcode.Data = "CODE128";
// other barcode settings.
// save barcode image into your system
barcode.drawBarcode("E:/barcode.png");
}
我們使用的是試用版(帶水印的......),還有付費(fèi)的正版,詳情請參考如下鏈接:
http://www.barcodelib.com/asp_net/
以上所述是小編給大家介紹的C#通過第三方組件生成二維碼(QR Code)和條形碼(Bar Code),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
C#在Windows上調(diào)用7-zip實(shí)現(xiàn)壓縮文件
這篇文章主要為大家詳細(xì)介紹了C#如何在Windows上調(diào)用7-zip實(shí)現(xiàn)壓縮文件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以學(xué)習(xí)一下2023-10-10
C#操作mysql數(shù)據(jù)庫的代碼實(shí)例
這篇文章為大家提供了一個(gè)C#操作mysql數(shù)據(jù)庫的實(shí)例,大家可以參考使用2013-11-11
C# 使用CancellationTokenSource取消多線程
有時(shí)間我們在使用多線程的時(shí)候,需要取消線程的執(zhí)行,可以使用CancellationTokenSource來取消對Task開辟多線程的取消,感興趣的可以了解一下2021-08-08
教你創(chuàng)建一個(gè)帶診斷工具的.NET鏡像
本文編寫的初衷是因?yàn)樵谌豪镉泻芏嘈』锇橛龅缴a(chǎn)環(huán)境性能問題的時(shí)候,.NET的runtime鏡像中沒有帶一些工具,安裝和使用起來很麻煩,所以分享一些我們公司內(nèi)部一些技巧,對.NET鏡像帶診斷工具相關(guān)知識感興趣的朋友一起看看吧2022-07-07

