WPF生成二維碼
阿新 • • 發佈:2018-04-12
clas 創建 psi get codes div gdi 通過 media
WPF可以通過ZXing.Net庫來實現二維碼的功能。
可以通過NuGet安裝:
Install-Package ZXing.Net
二維碼的實現代碼:
#region 二維碼的方法 /// <summary> /// 註銷對象方法API /// </summary> /// <param name="obj">準備註銷的對象</param> /// <returns></returns> [DllImport("gdi32")]static extern int DeleteObject(IntPtr obj); /// <summary> /// 生成二維碼圖形 /// </summary> /// <param name="content">二維碼文本內容</param> /// <param name="width">圖片寬度</param> /// <param name="height">圖片高度</param> /// <returns>二維碼圖形</returns> private BitmapSource CreateQRCode(string content, int width, int height) { EncodingOptions options; //包含一些編碼、大小等的設置 //BarcodeWriter :一個智能類來編碼一些內容的條形碼圖像 BarcodeWriter write = null; options = new QrCodeEncodingOptions { DisableECI= true, CharacterSet = "UTF-8", Width = width, Height = height, Margin = 0 }; write = new BarcodeWriter(); //設置條形碼格式 write.Format = BarcodeFormat.QR_CODE; //獲取或設置選項容器的編碼和渲染過程。 write.Options = options; //對指定的內容進行編碼,並返回該條碼的呈現實例。渲染屬性渲染實例使用,必須設置方法調用之前。 Bitmap bitmap = write.Write(content); IntPtr ip = bitmap.GetHbitmap();//從GDI+ Bitmap創建GDI位圖對象 //Imaging.CreateBitmapSourceFromHBitmap方法,基於所提供的非托管位圖和調色板信息的指針,返回一個托管的BitmapSource BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); DeleteObject(ip); return bitmapSource; } #endregion
生成二維碼的調用代碼:
var strCode = tbxKeyword.Text; if (string.IsNullOrEmpty(strCode)) { MessageBox.Show("請輸入二維碼文本內容"); tbxKeyword.Focus(); return; } imageData = CreateQRCode(strCode, mSettings.QRCodeSize, mSettings.QRCodeSize); imgQRCode.Source = imageData;
WPF生成二維碼