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

原文:http://blog.csdn.net/kongwei521/article/details/17588825

 

首先效果:

一、下载BarcodeLib.dll

下载地址 :http://download.csdn.net/detail/lllooollpp/7961715

 源码:https://github.com/hjgode/barcodeLib

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

然后项目中添加引用

 

    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;//code的显示位置
                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 项目参照引用

 

{
                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/

下载QrCodeNet.dll 项目参照引用

 

  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

时间: 2024-11-08 21:23:45

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

java利用zxing包解二维码

问题描述 java利用zxing包解二维码 我在网上找了一个解二维码的代码,利用的zxing包的功能解码,代码和zxing包都是现成的,编译通过然后运行是有些二维码能解析出来,有些就解析不出来.求大神 package test; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URLDecoder; import java.util.Enum

源代码-我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能。

问题描述 我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能. ①BitMatrix.java ②ByteMatrix.java ③MultiFormatWriter.java ④QRCodeWriter.java 这4个 我实在不懂 这功能,这里面哪个 是将输入字符串 变成那个0,1 那个的?用什么算法了...我这是Android工程. 谢谢了...

Android基于google Zxing实现各类二维码扫描效果_Android

随着微信的到来,二维码越来越火爆,随处能看到二维码,比如商城里面,肯德基,餐厅等等,对于二维码扫描我们使用的是google的开源框架Zxing,我们可以去http://code.google.com/p/zxing/下载源码和Jar包,之前我项目中的二维码扫描功能只实现了扫描功能,其UI真的是其丑无比,一个好的应用软件,其UI界面也要被大众所接纳,不然人家就不会用你的软件啦,所以说应用软件功能和界面一样都很重要,例如微信,相信微信UI被很多应用软件所模仿,我也仿照微信扫描二维码效果进行模仿,虽然

Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,呵呵,然后做项目的时候,老板说要加上二维码扫描功能,然后自己的屁颠屁颠的去百度,google啥的,发现很多朋友都有介绍二维码扫描的功能,然后我就跟着人家的介绍自己搞起了二维码扫描功能,跟着人家的帖子,很快我的项目就加入了扫描

Zxing方式生产二维码方法

ackage com.wmsDemo.QRCode;   import com.google.zxing.common.BitMatrix;         import javax.imageio.ImageIO;    import java.io.File;    import java.io.OutputStream;    import java.io.IOException;    import java.awt.image.BufferedImage;              p

Android实现基于ZXing快速集成二维码扫描功能

二维码扫描现在是一直比较多的应用场景,android的开源项目ZXing提供了完整.成熟的解决方案,如果仅仅是出于快速开发的目的,可以根据自己的项目需要,把ZXing官方提供的项目稍加裁剪,就可以快速的集成到自己的项目中.下面详细演示和介绍如何实现基于ZXing官方提供的源码,快速集成二维码扫描功能到自己项目中的解决方案. (第1步):到ZXing官方主页下载最新的项目代码包,ZXing在github的官方主页:https://github.com/zxing,下载后解压.解压后根目录下有若干项

Android基于google Zxing实现各类二维码扫描效果

随着微信的到来,二维码越来越火爆,随处能看到二维码,比如商城里面,肯德基,餐厅等等,对于二维码扫描我们使用的是google的开源框架Zxing,我们可以去http://code.google.com/p/zxing/下载源码和Jar包,之前我项目中的二维码扫描功能只实现了扫描功能,其UI真的是其丑无比,一个好的应用软件,其UI界面也要被大众所接纳,不然人家就不会用你的软件啦,所以说应用软件功能和界面一样都很重要,例如微信,相信微信UI被很多应用软件所模仿,我也仿照微信扫描二维码效果进行模仿,虽然

Android平台利用ZXING生成二维码图片

zxing是google的一个开源二维码项目,目前基本上和二维码打交道的东西,都会用到它. 最近项目中用到了android手机需要根据提供的字符串生成二维码图片,之前用zxing做过二维码解码,编码还没做过,看了一些demo都是用到了zxing的j2se包的内容,这个在android或者其他平台上显然无法实现,所以我们要利用zxing生成二维矩阵,然后根据android平台的提供的api来生成图片. /** * 用字符串生成二维码 * @param str * @author zhouzhe@l

条形码/二维码之开源利器ZXing图文介绍(转)

  继前面介绍的一个日本开源软件(该软件只能实现QRCode)原文: Java实现二维码QRCode的编码和解码(http://sjsky.iteye.com/blog/1136934 ),今发现又一优秀的开源利器-- ZXing,相比而言它更加灵活方便,可以实现多种编码格式.   全文目录: 基本介绍 二维码(比如:QRCode)的编码和解码演示 条形码(比如:EAN-13)的编码和解码演示  [一]. 基本介绍 :  1-1. ZXing是一个开源Java类库用于解析多种格式的条形码和二维码

使用zxing生成二维码 - servlet形式

因为项目有个功能需要打印二维码,因为我比较喜欢使用html+css+js实现,所以首先想到的是jquery.qrcode.js插件,这个插件可以用canvas和table生成二维码,效果也不错,不过对中文支持有问题,这个插件默认使用canvas,所以使用IE的时候,需要指定参数render,只要参数值不是canvas就会用table生成.由于这个问题,我在github,fork了一个,做了如下的修改: [javascript] view plain copy //true if support