WPF-生成二维码(条码)

1.效果图

 

 

2.BarcodeWriter 用于生成图片格式的条码类,通过Write函数进行输出。

BarcodeFormat 枚举类型,条码格式。

EncodingOptions,主要设置宽,高,编码方式等信息。

BitMatrix 表示按位表示的二维矩阵数组,元素的值用true和false表示二进制中的1和0。

/ 生成二维码
        private System.Drawing.Image GeneratorQR(string msg)
        {

            var QRmsg = "https://www.baidu.com/";
            if (!Directory.Exists(System.AppDomain.CurrentDomain.BaseDirectory + "QRBar1\\"))
            {
                Directory.CreateDirectory(System.AppDomain.CurrentDomain.BaseDirectory + "QRBar1\\");

            }
            var QRpath = System.AppDomain.CurrentDomain.BaseDirectory + "QRBar1\\" +
                                   "QrCode" + ".jpg";
            // MessageBox.Show(QRpath);

            BarcodeWriter writer = new BarcodeWriter
            {
                Format = BarcodeFormat.QR_CODE
            };
            writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");     // 编码问题
            writer.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
            int codeSizeInPixels = 150;      // 设置图片长宽
            writer.Options.Height = 150;
            writer.Options.Width = 150;
            writer.Options.Margin = 0;       // 设置边框
            BitMatrix bm = writer.Encode(msg);
            Bitmap img = writer.Write(bm);
            img.Save(@QRpath);
            imageQR.Source = BitmapToBitmapImage(img);
            return img;
        }

3.

Bitmap 转换为 BitmapImage(避免图片被占用,我之前的博客有提到过)
 // Bitmap --> BitmapImage
        public static BitmapImage BitmapToBitmapImage(Bitmap bitmap)
        {
            using (MemoryStream stream = new MemoryStream())
            {
                bitmap.Save(stream, ImageFormat.Png);
                stream.Position = 0;
                BitmapImage result = new BitmapImage();
                result.BeginInit();
                result.CacheOption = BitmapCacheOption.OnLoad;
                result.StreamSource = stream;
                result.EndInit();
                result.Freeze();
                return result;
            }
        }

4.源码下载。

 https://files-cdn.cnblogs.com/files/king10086/QR.7z

posted @ 2020-04-07 14:55  MrKing&  阅读(1168)  评论(3编辑  收藏  举报