Generating a two-dimensional code C # (with Logo)
The first way
We need to reference ThoughtWorks.QRCode.dll generate two-dimensional code with a logo (framework4.0 above)
Download: https: //pan.baidu.com/s/1mBjd7PHB-Klybx18Z5Og8A
Extraction code: ugwa
/// <the Summary> /// create a two-dimensional code /// </ the Summary> /// <param name = "Content"> content </ param> /// <returns A> </ returns A> public static Bitmap CreateQRCode ( String Content) { the try { QRCodeEncoder qrEncoder = new new QRCodeEncoder (); // two-dimensional code types qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; // two-dimensional code size qrEncoder.QRCodeScale = . 4 ; // two-dimensional code version qrEncoder.QRCodeVersion = 7 ; // two-dimensional code degree of fault tolerance qrEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; // font and background color qrEncoder.QRCodeBackgroundColor = Color.White; qrEncoder.QRCodeForegroundColor = Color.Black ; // UTF-type encoding. 8 Bitmap qrcode = qrEncoder.Encode (Content, Encoding.UTF8); return qrcode; } the catch (Exception) { return null ; } }
/// <Summary> /// generating a two-dimensional code with a logo /// </ Summary> /// <Returns> </ Returns> public static Bitmap CreateQRCodeWithLogo ( String Content, String logopath) { // generate two-dimensional code qrcode = Bitmap CreateQRCode (Content); // generating logo Bitmap logo = new new Bitmap (logopath); // synthesis ImageUtility util = new new ImageUtility (); Bitmap finalImage = util.MergeQrImg (qrcode, logo); return finalImage; }
/// <the Summary> /// save two-dimensional code /// </ the Summary> /// <param name = "QRCode"> D barcode image </ param> /// <param name = "SavePath"> save the path </ param> /// <param name = "QRCodeName"> image name </ param> public static void SaveQRCode (Bitmap QRCode, String SavePath, String QRCodeName) { IF (! Directory.Exists (SavePath)) { Directory .CreateDirectory (SavePath); } QRCode.Save(Path.Combine(SavePath, QRCodeName + ".png"), ImageFormat.Png); QRCode.Dispose(); }
The second way
We need to reference Gma.QrCodeNet.Encoding.Net45.dll (framework4.5 above) to support Chinese
Download: https: //pan.baidu.com/s/1TKMwdWHYhTp_fJnTYHKnsQ
Extraction code: eqjh
// <summary> /// 生成保存二维码(framework4.5以上) /// </summary> /// <param name="CodeString"></param> /// <param name="PicName"></param> /// <param name="FilePath"></param> public static void CreateQRCode(string CodeString, string PicName, string FilePath) { QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H); QrCode code = new QrCode(); qrEncoder.TryEncode(CodeString, out code); const int modelSizeInPixels = 4; GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(modelSizeInPixels, QuietZoneModules.Two) , Brushes.Black, Brushes.White); if (!Directory.Exists(FilePath)) { Directory.CreateDirectory(FilePath); } string filename = FilePath + "\\" + PicName + ".png"; using (FileStream stream = new FileStream(filename, FileMode.Create)) { render.WriteToStream(code.Matrix, ImageFormat.Png, stream); } }