1. 程式人生 > >WPF生成二維碼

WPF生成二維碼

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生成二維碼