条形码和二维码的选择(.NETC利用ZXing生成)
ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。这篇文章主要给大家介绍了.NET C#利用ZXing生成、识别二维码/条形码的方法,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴
- 二维码生成
private Bitmap zxing_Qrcode(string str,int heigth,int width,int margin)
{
Bitmap pic = null;
BarcodeWriter barwriter=new BarcodeWriter();
barwriter.Format=BarcodeFormat.QR_CODE ;
barwriter.Options.Hints.Add (EncodeHintType.CHARACTER_SET,"UTF-8");//编码格式
barwriter .Options.Hints.Add (EncodeHintType.ERROR_CORRECTION,ZXing.QrCode.Internal.ErrorCorrectionLevel.H);//容错等级
barwriter.Options.Width=width;
barwriter.Options.Height=heigth;
barwriter.Options.Margin=margin;
if (str ==string.Empty)private string zxing_解码_二维码(Bitmap 图片)
{
BarcodeReader reader = new BarcodeReader();
var result =reader.Decode(图片);
return(result.Text);
}
{return null ;}
ZXing.Common.BitMatrix bm=barwriter.Encode(str);
pic =barwriter.Write(bm);
return pic;
}
- L - 约 7% 纠错能力。
- M - 约 15% 纠错能力。
- Q - 约 25% 纠错能力。
- H - 约 30% 纠错能力。
2.二维码识别
private string zxing_IdentifyQrcode(Bitmap img)
{
BarcodeReader reader = new BarcodeReader();
var result =reader.Decode(img);
return(result.Text);
}
3.条形码生成
private Bitmap Out1DImg(string str)
{
// 1.设置条形码规格
EncodingOptions encodeOption = new EncodingOptions();
encodeOption.Height = 68; // 必须制定高度、宽度
encodeOption.Width = 140;
// 2.生成条形码图片并保存
ZXing.BarcodeWriter wr = new BarcodeWriter();
wr.Options = encodeOption;
wr.Format = BarcodeFormat.CODE_128; // 条形码规格:EAN13规格:12(无校验位)或13位数字 //把Barcode128 字体设置成null,就没有下面的文字了。
encodeOption.PureBarcode = false; // 是否是纯码,如果为 false,则会在图片下方显示数字
System.Threading.Thread.Sleep(100); //间隔
string data = DateTime.Now.ToString(str);
Bitmap img = wr.Write(data); // 生成图片
return img;
}
4.条形码识别
private void button6_Click(object sender, EventArgs e)
{
pictureBox4.Image = pictureBox3.Image;
BarcodeReader reader = new BarcodeReader();
Bitmap bmp = (Bitmap)pictureBox4.Image;
if (bmp != null)
{
Result result = reader.Decode(bmp);
textBox4.Text = result.Text;
}
else
{
MessageBox.Show("识别失败");
}
}
觉得有用的朋友可以点赞收藏转发,说不定在哪个项目上就用上了
学习之路一点点前进加油
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com