今天,做项目需要使用条形码扫描枪扫描二维码,以后后续手动生成二维码和条形码。看了一下,同事写的例子以及自己在网上查看了一下源码,至于源码怎么搞的,没看,直接上使用功能!
Step1:下载地址:http://zxingnet.codeplex.com/
zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便。
首先下载二进制dll文件,引入工程;**
/// <summary>
/// 条形码生成
/// </summary>
public void BarCode()
{
EncodingOptions options = new EncodingOptions
{
Width = 200,
Height = 100,
PureBarcode = false // 是否是纯码,如果为 false,则会在图片下方显示数字
};
BarcodeWriter writer = new BarcodeWriter
{
Format = BarcodeFormat.CODE_39,
Options = options,
};
using (Bitmap bmp = writer.Write("AS12346131321646QW")) // Write 具备生成、写入两个功能
{
MemoryStream ms = new MemoryStream();
{
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Response.ContentType = "image/png";
Response.BinaryWrite(ms.ToArray());
}
}
}
/// <summary>
/// 二维码
/// </summary>
public void QRcode()
{
QrCodeEncodingOptions options = new QrCodeEncodingOptions
{
CharacterSet = "UTF-8",
DisableECI = true, // Extended Channel Interpretation (ECI) 主要用于特殊的字符集。并不是所有的扫描器都支持这种编码。
ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.H, // 纠错级别
Width = 300,
Height = 300,
Margin = 1,
PureBarcode = true,
};
// options.Hints,更多属性,也可以在这里添加。
BarcodeWriter writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = options
};
Response.Clear();
using (Bitmap bmp = writer.Write("AS12346131321646QW")) // Write 具备生成、写入两个功能
{
MemoryStream ms = new MemoryStream();
{
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Response.ContentType = "image/png";
Response.BinaryWrite(ms.ToArray());
}
}
}
/// <summary>
///识别二维码还是条形码
/// </summary>
public void DistinguishQRorBar()
{
BarcodeReader reader = new BarcodeReader();
reader.Options.CharacterSet = "UTF-8";
using (Bitmap bmp = new Bitmap("D:\\qr.png"))
{
Result result = reader.Decode(bmp);
Response.Write(result.Text);
}
}
纠错级别:
1. L - 约 7% 纠错能力
2. M - 约 15% 纠错能力
3. Q - 约 25% 纠错能力
4. H - 约 30% 纠错能力
二维码和条形码生成方式不同,使用不同的类,不过打印动能都是相同的的,都是使用Bitmap的形式
如果需要修改图片的样式,那么就在Bitmap画布中直接使用就行,操作Bitmap
http://www.360doc.com/content/13/1211/19/14578864_336409720.shtml 图片打印功能
http://www.jb51.net/article/99312.htm 文章来源