您的位置:首页 > 编程语言 > C#

C# 利用BarcodeLib.dll生成条形码(一维,zxing,QrCodeNet/dll二维码)

2014-12-11 01:23 786 查看
首先效果:



1:首先下载BarcodeLib.dll 下载地址 http://pan.baidu.com/share/link?shareid=2590968386&uk=2148890391&fid=1692834292 如果不存在了则自行搜索下载。

1.BarcodeLib.dll 一维条码库支持以下条码格式

UPC-A

UPC-E

UPC 2 Digit Ext.

UPC 5 Digit Ext.

EAN-13

JAN-13

EAN-8

ITF-14

Codabar

PostNet

Bookland/ISBN

Code 11

Code 39

Code 39 Extended

Code 93

LOGMARS

MSI

Interleaved 2 of 5

Standard 2 of 5

Code 128

Code 128-A

Code 128-B

Code 128-C

Telepen

然后项目中添加引用

[csharp] view
plaincopy





private void button6_Click(object sender, EventArgs e)

{

System.Drawing.Image image;

int width = 148, height = 55;

string fileSavePath = AppDomain.CurrentDomain.BaseDirectory + "BarcodePattern.jpg";

if (File.Exists(fileSavePath))

File.Delete(fileSavePath);

GetBarcode(height, width, BarcodeLib.TYPE.CODE128, "20131025-136", out image, fileSavePath);

pictureBox1.Image = Image.FromFile("BarcodePattern.jpg");

}

public static void GetBarcode(int height, int width, BarcodeLib.TYPE type, string code, out System.Drawing.Image image, string fileSaveUrl)

{

try

{

image = null;

BarcodeLib.Barcode b = new BarcodeLib.Barcode();

b.BackColor = System.Drawing.Color.White;//图片背景颜色

b.ForeColor = System.Drawing.Color.Black;//条码颜色

b.IncludeLabel = true;

b.Alignment = BarcodeLib.AlignmentPositions.LEFT;

b.LabelPosition = BarcodeLib.LabelPositions.BOTTOMCENTER;

b.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;//图片格式

System.Drawing.Font font = new System.Drawing.Font("verdana", 10f);//字体设置

b.LabelFont = font;

b.Height = height;//图片高度设置(px单位)

b.Width = width;//图片宽度设置(px单位)

image = b.Encode(type, code);//生成图片

image.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg);

}

catch (Exception ex)

{

image = null;

}

}

简单的写一下。详细的去 http://www.barcodelib.com/net_barcode/main.html 这里看。

利用 zxing.dll生成条形码和二维码 下载地址http://zxingnet.codeplex.com/

ZXing (ZebraCrossing)是一个开源的,支持多种格式的条形码图像处理库, 。使用该类库可以方便地实现二维码图像的生成和解析。

下载zxing.dll[b] 项目参照引用[/b]

[csharp] view
plaincopy





{

MultiFormatWriter mutiWriter = new com.google.zxing.MultiFormatWriter();

ByteMatrix bm = mutiWriter.encode(txtMsg.Text, com.google.zxing.BarcodeFormat.QR_CODE, 300, 300);

Bitmap img = bm.ToBitmap();

pictureBox1.Image = img;

//自动保存图片到当前目录

string filename = System.Environment.CurrentDirectory + "\\QR" + DateTime.Now.Ticks.ToString() + ".jpg";

img.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);

lbshow.Text = "图片已保存到:" + filename;

}

catch (Exception ee)

{ MessageBox.Show(ee.Message); }



利用 QrCodeNet.dll生成条形码和二维码 下载地址http://qrcodenet.codeplex.com/

下载[b]QrCodeNet.dll 项目参照引用[/b]

[csharp] view
plaincopy





private void button2_Click(object sender, EventArgs e)

{

var codeParams = CodeDescriptor.Init(ErrorCorrectionLevel.H, textBox1.Text.Trim(), QuietZoneModules.Two, 5);

codeParams.TryEncode();

// Render the QR code as an image

using (var ms = new MemoryStream())

{

codeParams.Render(ms);

Image image = Image.FromStream(ms);

pictureBox1.Image = image;

if (image != null)

pictureBox1.SizeMode = image.Height > pictureBox1.Height ? PictureBoxSizeMode.Zoom : PictureBoxSizeMode.Normal;

}

}

/// <summary>

/// Class containing the description of the QR code and wrapping encoding and rendering.

/// </summary>

internal class CodeDescriptor

{

public ErrorCorrectionLevel Ecl;

public string Content;

public QuietZoneModules QuietZones;

public int ModuleSize;

public BitMatrix Matrix;

public string ContentType;

/// <summary>

/// Parse QueryString that define the QR code properties

/// </summary>

/// <param name="request">HttpRequest containing HTTP GET data</param>

/// <returns>A QR code descriptor object</returns>

public static CodeDescriptor Init(ErrorCorrectionLevel level, string content, QuietZoneModules qzModules, int moduleSize)

{

var cp = new CodeDescriptor();

//// Error correction level

cp.Ecl = level;

//// Code content to encode

cp.Content = content;

//// Size of the quiet zone

cp.QuietZones = qzModules;

//// Module size

cp.ModuleSize = moduleSize;

return cp;

}

/// <summary>

/// Encode the content with desired parameters and save the generated Matrix

/// </summary>

/// <returns>True if the encoding succeeded, false if the content is empty or too large to fit in a QR code</returns>

public bool TryEncode()

{

var encoder = new QrEncoder(Ecl);

QrCode qr;

if (!encoder.TryEncode(Content, out qr))

return false;

Matrix = qr.Matrix;

return true;

}

/// <summary>

/// Render the Matrix as a PNG image

/// </summary>

/// <param name="ms">MemoryStream to store the image bytes into</param>

internal void Render(MemoryStream ms)

{

var render = new GraphicsRenderer(new FixedModuleSize(ModuleSize, QuietZones));

render.WriteToStream(Matrix, System.Drawing.Imaging.ImageFormat.Png, ms);

ContentType = "image/png";

}

}

效果:



参考地址:
http://www.cnblogs.com/mzlee/archive/2011/03/19/Lee_Barcode.html http://blog.163.com/smxp_2006/blog/static/588682542010215163803/ http://q.cnblogs.com/q/15253/ http://www.csharpwin.com/csharpspace/13364r9803.shtml http://www.2cto.com/kf/201304/203035.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: