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 @   MrKing&  阅读(1380)  评论(3编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示