条形生的生成保存

1. 介绍

1.1 条形码

条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。

1.2 条形码分类

可分为一维条形码和二维条形码:

一维条形码:只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息。

二维条形码:在水平和垂直方向的二维空间存储信息的条形码。

1.3 第三方类库:ZXing.Net

1.3.1 说明

ZXing 是一个可生成和读取 1D/2D(1维/2维) 条形码的开源类库。原先是java版本,后由第三方衍生了支持QT、C++、.Net等版本。

.Net版本支持的平台:.Net 2.0, 3.5 and 4.0、Silverlight 4 and 5、Windows Phone 7.0, 7.1 and 8.0、Windows CE、Unity3D、Xamarin.Android 等等。

1.3.2 下载地址

Java 版本:https://github.com/zxing/zxing

ZXing.Net 版本:http://zxingnet.codeplex.com/

2. 一维码操作

2.1 介绍

一维条形码:只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息。

常用码制:EAN码、39码、交叉25码、UPC码、128码、93码,ISBN码及Codabar(库德巴码)等。

国内推行使用的是EAN商品条形码,可分为EAN-13(标准版)和EAN-8(缩短版)两种。

例图:

2.2 生成一维码

以生成EAN-13码制为例:

// 1.设置条形码规格
EncodingOptions encodeOption = new EncodingOptions();
encodeOption.Height = 130; // 必须制定高度、宽度
encodeOption.Width = 240; 

// 2.生成条形码图片并保存
ZXing.BarcodeWriter wr = new BarcodeWriter();
wr.Options = encodeOption;
wr.Format = BarcodeFormat.EAN_13; //  条形码规格:EAN13规格:12(无校验位)或13位数字
Bitmap img = wr.Write(this.ContentTxt.Text); // 生成图片
string filePath = System.AppDomain.CurrentDomain.BaseDirectory + "\\EAN_13-" + this.ContentTxt.Text + ".jpg";
img.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg); 

2.3 读取一维码

以读取EAN-13码制的图片为例:

// 1.设置读取条形码规格
DecodingOptions decodeOption = new DecodingOptions();
decodeOption.PossibleFormats = new List<BarcodeFormat>() {
   BarcodeFormat.EAN_13,
};

// 2.进行读取操作
ZXing.BarcodeReader br = new BarcodeReader();
br.Options = decodeOption;
ZXing.Result rs = br.Decode(this.barCodeImg.Image as Bitmap);
if (rs == null)
{
    this.ContentTxt.Text = "读取失败";
    MessageBox.Show("读取失败");
}
else
{
    this.ContentTxt.Text = rs.Text;
    MessageBox.Show("读取成功,内容:" + rs.Text);
}

3. 二维码操作

3.1 介绍

二维码:在水平和垂直方向的二维空间存储信息的条形码。

常用码制:PDF417、QR Code、Code 49、Code 16K、Code One等。

例图:

3.2 生成二维码

以生成QR码制为例:

// 1.设置QR二维码的规格
ZXing.QrCode.QrCodeEncodingOptions qrEncodeOption = new ZXing.QrCode.QrCodeEncodingOptions();
qrEncodeOption.CharacterSet = "UTF-8"; // 设置编码格式,否则读取‘中文‘乱码
qrEncodeOption.Height = 200;
qrEncodeOption.Width = 200;
qrEncodeOption.Margin = 1; // 设置周围空白边距

// 2.生成条形码图片并保存
ZXing.BarcodeWriter wr = new BarcodeWriter();
wr.Format = BarcodeFormat.QR_CODE; // 二维码
wr.Options = qrEncodeOption;
Bitmap img = wr.Write(this.ContentTxt.Text);
string filePath = System.AppDomain.CurrentDomain.BaseDirectory + "\\QR-" + this.ContentTxt.Text + ".jpg";
img.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);

3.3 读取二维码

以读取QR码制的图片为例:

// 1.设置读取条形码规格
DecodingOptions decodeOption = new DecodingOptions();
decodeOption.PossibleFormats = new List<BarcodeFormat>() {
   BarcodeFormat.QR_CODE,
;

// 2.进行读取操作
ZXing.BarcodeReader br = new BarcodeReader();
br.Options = decodeOption;
ZXing.Result rs = br.Decode(this.barCodeImg.Image as Bitmap);
if (rs == null)
{
    this.ContentTxt.Text = "读取失败";
    MessageBox.Show("读取失败");
}
else
{
    this.ContentTxt.Text = rs.Text;
    MessageBox.Show("读取成功,内容:" + rs.Text);
}

3.4 生成带Logo的二维码

二维码带有校验功能,故可以在中间区域展示一定尺寸的图片。

例图:

代码:

// 1.设置QR二维码的规格
ZXing.QrCode.QrCodeEncodingOptions qrEncodeOption = new ZXing.QrCode.QrCodeEncodingOptions();
qrEncodeOption.CharacterSet = "UTF-8"; // 设置编码格式,否则读取‘中文‘乱码
qrEncodeOption.Height = 200;
qrEncodeOption.Width = 200;
qrEncodeOption.Margin = 1; // 设置周围空白边距

// 2.生成条形码图片
ZXing.BarcodeWriter wr = new BarcodeWriter();
wr.Format = BarcodeFormat.QR_CODE; // 二维码
wr.Options = qrEncodeOption;
Bitmap img = wr.Write(this.ContentTxt.Text);

// 3.在二维码的Bitmap对象上绘制logo图片
Bitmap logoImg = Bitmap.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "\\logo.jpg") as Bitmap;
Graphics g = Graphics.FromImage(img);
Rectangle logoRec = new Rectangle(); // 设置logo图片的大小和绘制位置
logoRec.Width = img.Width / 6;
logoRec.Height = img.Height / 6;
logoRec.X = img.Width / 2 - logoRec.Width / 2; // 中心点
logoRec.Y = img.Height / 2 - logoRec.Height / 2;
g.DrawImage(logoImg, logoRec);

// 4.保存绘制后的图片
string filePath = System.AppDomain.CurrentDomain.BaseDirectory + "\\QR-" + this.ContentTxt.Text + ".jpg";
img.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);

4. 源码下载

4.1 运行图

4.2 下载地址

百度网盘:http://pan.baidu.com/s/1qWRJMAo

CSDN:http://download.csdn.net/detail/polk6/9383226

时间: 2024-10-03 02:17:26

条形生的生成保存的相关文章

微信小程序动态生成保存二维码

起源:最近小程序需要涉及到一些推广方面的功能,所以要写一个动态生成二维码用户进行下载分享,写完之后受益良多,特此来分享一下: 一.微信小程序动态生成保存二维码 wxml: <canvas style="width: 350rpx;height: 350rpx;background:#f1f1f1;" canvas-id="mycanvas"/> js: // pages/qrcode/qrcode.js var QR = require("..

js 将网页生成为html保存访问

2012-04-03 今天实现了一个需求,主题是将浏览中的网页生成html保存起来,记录访问url,挂在公司网站上做案例. 首先忙活了N久的是去搜索生成html的js函数. 什么IE自带的ActiveX,js插件,js的winow.print();函数调用打印机打印页面等 最后结果是怎么搞都是不行. 就快到穷途末路时,在stackoverflow.com网站看到一条问题,也是与生成html相关的. 牛人解决方案如下: 使用jQuery // 看到这句我顿时哑语了,这么简单的方法我怎么想不到 va

JAVA生成二维码图片代码

首先需要导入 QRCode.jar 包 下载地址看这里   http://pan.baidu.com/s/1o6qRFqM import java.awt.Color;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.io.UnsupportedEncoding

史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

java-原生爬虫机制源码

这是一个web搜索的基本程序,从命令行输入搜索条件(起始的URL.处理url的最大数.要搜索的字符串),它就会逐个对Internet上的URL进行实时搜索,查找并输出匹配搜索条件的页面. 这个程序的原型来自<java编程艺术>,为了更好的分析,站长去掉了其中的GUI部分,并稍作修改以适用jdk1.5.以这个程序为基础,可以写出在互联网上搜索诸如图像.邮件.网页下载之类的“爬虫”.先请看程序运行的过程: package com.utils; import java.io.DataOutputSt

[轉載]史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

最有效的php生成pdf文件的方法,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半天,

微信公众号的二维码怎么生成?

关注公众号二维码微信扫码直接关注公众号,被动回复信息,支持文本.图片.图文.小程序等等 带参数二维码一种是临时二维码,有效期30天,基本上不限制数量.主要用活动营销.粉丝推广.限时优惠另一种是永久二维码,是无过期时间的,目前最多生成10万个,主要用于粉丝统计.粉丝裂变.长期活动营销.广告长期监控 1.进入登录页面,输入自己的账号和密码,后台选择功能管理,进入初始页面 2.高级功能选择渠道二维码生成+创建渠道二维码 填写渠道名称(二维码用途描述)统计对象:新关注+已关注的粉丝 仅新关注的粉丝自动分

Cacti生成单接口流量图像

·首先要确保监控server的IP地址在被监控主机的SNMP白名单内,且保证中间设备未对161.162等相关SNMP端口号进行过滤.·然后要确定cacti流量图拿来做运维流量监控还是95计费,这个在选择图像模板时要用到.·模板都是系统预制好了的,可以直接拿来用. 一.流程添加主机-->添加数据源-->添加图像-->加入Graph Trees 二.步骤1.添加主机添加主机时主机模板选择Generic SNMP-enabled Host,Generic SNMP-enabled Host模板