赞
踩
一.ZXing.Net
也可使用Nuget包管理,添加如图:
说明:ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。现在也有了对应的.Net版本
二、生成二维码
将字符编码时可以指定字符格式;默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符集编码,
可以通过QrCodeEncodingOptions设置编码方式。
如果要生成其他zxing支持的条形码,只要修改BarcodeWriter.Format就可以了。
- /// <summary>
- /// 生成二维码,保存成图片
- /// </summary>
- static void Generate1(string text)
- {
- BarcodeWriter writer = new BarcodeWriter();
- writer.Format = BarcodeFormat.QR_CODE;
- QrCodeEncodingOptions options = new QrCodeEncodingOptions();
- options.DisableECI = true;
- //设置内容编码
- options.CharacterSet = "UTF-8";
- //设置二维码的宽度和高度
- options.Width = 500;
- options.Height = 500;
- //设置二维码的边距,单位不是固定像素
- options.Margin = 1;
- writer.Options = options;
-
- Bitmap map = writer.Write(text);
- string filename = @"H:\桌面\截图\generate1.png";
- map.Save(filename, ImageFormat.Png);
- map.Dispose();
- }
//生成二维码 Generate1("https://www.baidu.com/"); Generate1("ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用 ,只需要几步就可以快速创建您的Ionic应用,创建应用从这里开始");
三、生成条形码
- static void Generate2(string text)
- {
- BarcodeWriter writer = new BarcodeWriter();
- //使用ITF 格式,不能被现在常用的支付宝、微信扫出来
- //如果想生成可识别的可以使用 CODE_128 格式
- //writer.Format = BarcodeFormat.ITF;
- writer.Format = BarcodeFormat.CODE_128;
- EncodingOptions options = new EncodingOptions()
- {
- Width = 150,
- Height =50,
- Margin=2
- };
- writer.Options = options;
- Bitmap map = writer.Write(text);
- string filename = @"H:\桌面\截图\generate2.png";
- map.Save(filename, ImageFormat.Png);
- }
//生成条形码 Generate2("1234567890"); //错误说明 //只支持数字 Requested contents should only contain digits, but got 'i' //只支持偶数个 The lenght of the input should be even //最大长度80 Requested contents should be less than 80 digits long, but got 102
四、识别二维码/条形码
- /// <summary>
- /// 读取二维码
- /// 读取失败,返回空字符串
- /// </summary>
- /// <param name="filename">指定二维码图片位置</param>
- static string Read1(string filename)
- {
- BarcodeReader reader = new BarcodeReader();
- reader.Options.CharacterSet = "UTF-8";
- Bitmap map = new Bitmap(filename);
- Result result = reader.Decode(map);
- return result == null ? "" : result.Text;
- }
//1.读取二维码内容 //读取字母成功 //string filename = @"H:\桌面\截图\url.png"; //string filename = @"H:\桌面\截图\weibo.png"; //string filename = @"H:\桌面\截图\qrcode1.png"; //string filename = @"H:\桌面\截图\qrcode2.png"; //string filename = @"H:\桌面\截图\qrcode3.png"; //对于有logo的二维码只返回字符串内容 //string filename = @"H:\桌面\截图\qrcode4.png"; //string filename = @"H:\桌面\截图\qrcode5.png"; //string filename = @"H:\桌面\截图\qrcode6.png"; //识别条形码 string filename = @"H:\桌面\截图\generate2.png"; string result = Read1(filename); Console.WriteLine(result);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。