条形码和二维码的选择(.NETC利用ZXing生成)

ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。这篇文章主要给大家介绍了.NET C#利用ZXing生成、识别二维码/条形码的方法,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴

条形码和二维码的选择(.NETC利用ZXing生成)(1)

  1. 二维码生成

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; }

  1. L - 约 7% 纠错能力。
  2. M - 约 15% 纠错能力。
  3. Q - 约 25% 纠错能力。
  4. H - 约 30% 纠错能力。

2.二维码识别

private string zxing_IdentifyQrcode(Bitmap img) { BarcodeReader reader = new BarcodeReader(); var result =reader.Decode(img); return(result.Text); }

条形码和二维码的选择(.NETC利用ZXing生成)(2)

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

    分享
    投诉
    首页