NET Two-dimensional code generation (Thoughtworks.qrcode)
Reference ThoughtWorks.QRCode.dll (in source code)
1, simple two-dimensional code generation and decoding code:
Generate two-dimensional code method one private void Createcode_simple (string nr) {Qrcodeencoder Qrcodeencoder = new Qrcodeencoder (); Qrcodeencoder.qrcodeencodemode = Qrcodeencoder.encode_mode. BYTE; Qrcodeencoder.qrcodescale = 4; Qrcodeencoder.qrcodeversion = 8; Qrcodeencoder.qrcodeerrorcorrect = qrcodeencoder.error_correction. M System.Drawing.Image Image = Qrcodeencoder.encode ("4408810820 Shenzhen-guangzhou xiaojiang"); System.Drawing.Image Image = Qrcodeencoder.encode (NR); string filename = DateTime.Now.ToString ("Yyyymmddhhmmssfff"). ToString () + ". jpg"; string filepath = Server.MapPath (@ "~\upload") + "\ \" + filename; System.IO.FileStream fs = new System.IO.FileStream (filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); Image. Save (FS, System.Drawing.Imaging.ImageFormat.Jpeg); Fs. Close (); Image. Dispose (); Two-dimensional code decoding VAR CodedecodeR = Codedecoder (filepath); }///<summary>//QR code decoding///</summary>//<param name= "FilePath" > Picture path < /param>//<returns></returns> public string Codedecoder (string filePath) { if (! System.IO.File.Exists (FilePath)) return null; Bitmap Mybitmap = new Bitmap (Image.FromFile (FilePath)); Qrcodedecoder decoder = new Qrcodedecoder (); String decodedstring = Decoder.decode (new Qrcodebitmapimage (Mybitmap)); return decodedstring; }
2, the source code demonstration, the relatively complex generation way:
Interface effect:
Front-End Code:
@{Layout = null;} <! DOCTYPE html>Background:
Generate QR Code///</summary>//<param name= "strdata" > Text or numbers to be generated, support Chinese. such as: "4408810820 Shenzhen-guangzhou" or:4444444444</param>//<param name= "qrencoding" > Three sizes: BYTE, Alpha_numeric,numer ic</param>//<param Name= "level" > Size: L M Q h</param>//<param name= "Version" > Version: If 8</param>//<param name= "scale" > ratio: 4</param>//<returns></returns> Public ActionResult Createcode_choose (string strdata, String qrencoding, string level, int version, Int. scale) { Qrcodeencoder Qrcodeencoder = new Qrcodeencoder (); string encoding = qrencoding; Switch (encoding) {case "Byte": Qrcodeencoder.qrcodeencodemode = qrcodeencod Er. Encode_mode. BYTE; Break Case "alphanumeric": Qrcodeencoder.qrcodeencodemode = Qrcodeencoder.encode_mode. Alpha_numeric; Break Case "Numeric": Qrcodeencoder.qrcodeencodemode = Qrcodeencoder.encode_mode. NUMERIC; Break Default:qrCodeEncoder.QRCodeEncodeMode = Qrcodeencoder.encode_mode. BYTE; Break } Qrcodeencoder.qrcodescale = scale; Qrcodeencoder.qrcodeversion = version; Switch (level) {case "L": Qrcodeencoder.qrcodeerrorcorrect = QRCODEENCODER.E Rror_correction. L Break Case "M": Qrcodeencoder.qrcodeerrorcorrect = qrcodeencoder.error_correction. M Break Case "Q": Qrcodeencoder.qrcodeerrorcorrect = qrcodeencoder.error_correction. Q; Break Default:qrCodeEncoder.QRCodeErrorCorrect = qrcodeencoder.error_correction. H Break }//text generation picture image image = Qrcodeencoder.encode (strdata); string filename = DateTime.Now.ToString ("Yyyymmddhhmmssfff"). ToString () + ". jpg"; string filepath = Server.MapPath (@ "~\upload") + "\ \" + filename; If the folder does not exist, create the//if (! Directory.Exists (filepath))//Directory.CreateDirectory (filepath); System.IO.FileStream fs = new System.IO.FileStream (filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write); Image. Save (FS, System.Drawing.Imaging.ImageFormat.Jpeg); Fs. Close (); Image. Dispose (); return Content (@ "/upload/" + filename); }
Source code Demo Download: Click to download
NET Two-dimensional code generation