一.ZXing.Nethtml
源代碼地址:https://github.com/zxing/zxinggit
http://zxingnet.codeplex.com/github
也能夠使用Nuget包管理,添加如圖:微信
說明:ZXing是一個開源Java類庫用於解析多種格式的1D/2D條形碼。目標是可以對QR編碼、Data Matrix、UPC的1D條形碼進行解碼。 其提供了多種平臺下的客戶端包括:J2ME、J2SE和Android。如今也有了對應的.Net版本框架
2、生成二維碼less
將字符編碼時能夠指定字符格式;默認爲ISO-8859-1英文字符集,但通常移動設備經常使用UTF-8字符集編碼,ionic
能夠經過QrCodeEncodingOptions設置編碼方式。post
若是要生成其餘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應用,建立應用從這裏開始");
3、生成條形碼url
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
3、識別二維碼/條形碼
/// <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);
Demo源代碼:http://git.oschina.net/tiama3798/QrCodeTool/tree/StudyDemo1/
更多: