精华内容
下载资源
问答
  • c#生成二维码
    2022-08-29 15:38:03
    • 大家好,在本章是如何通过.net/C#来生成二维码
    • 首先大家还是需要仔细阅读这篇文档有小细节就需要注意
    • 大家需要生成一些类,把我的方法复制进去,如果不想添加类的话,大家需要再主代码上更改引用信息找到我们所添加的方法
    • 不适用于零基础的朋友,适用于有点经验的懂一点代码的就行

    1、首先我们新建一个自己的项目.net core 或其他项目新建好后新建一个控制器我们需要在里面写自己的代码,在控制器里面生成一个index页面如下是我的index页面。

     上方是我的前台页面,里面主要的就是那个按钮,我呢是通过这个按钮把我的一张图片做成了二维码的内容,大家可以把自己想变成二维码的内容弄进去,这里我只弄功能。

    上面那个是二维码结构图片

    2、前台页面的代码是这样的,大家肯定会和我的不一样,也没关系,只要作用是一样的就行,大致就是需要一个生成二维码的按钮和点击后弹出二维码。前台代码大家尽量别复制,大家按照自己的写就行了。

    //一个按钮用来触发
    <script type="text/html" id="barList">
          <a class="layui-btn  layui-btn-xs" lay-event="live">图片二维码</a>
    </script>
    
    //触发后弹出的二维码
    <div class="QRCodeDownload" style="display:none;">
    
        <img class="QRCodeImg" id="QRCodeImg" style="display:block;width:250px;height:250px;margin:0 auto;margin-top:20px;" />
        <div id="ActivityTitle" style="text-align:center;"></div>
        <div style="display:inline-block;width:160px;margin-left:15px;"><p style="display:inline-block;">二维码尺寸为:</p><input type="number" min="200" max="2000" class="layui-input" id="slideCon1" value="250" style="width:60px;display:inline-block;"></div><div id="slide1" class="slider1" style="width:60%;display:inline-block;margin-left:10px;"></div>
        <input type="hidden" id="codeContent1" value="250">
    
        @*<input type="text" name="ActivityTitle" id="ActivityTitle" placeholder="" autocomplete="off" class="layui-input" style="width: 460px; margin-left: 15px">*@
    
        <input type="text" name="Activitylink" id="Activitylink" placeholder="" autocomplete="off" class="layui-input" style="width:460px; margin:10px auto 0;">
    </div>

    3、有了HTMl代码肯定也要有ajax请求的方法:主要有一下几个步骤,首先是监听一下页面是否点击了我们的二维码按钮,点击后应该请求的接口是哪个。下面是我的请求方法,大家也是不要复制,按照自己的前端代码写就行,我们主要是实现后台代码。我这个你们复制过去也不管用,所以看看逻辑就行。

    //我们不管通过什么办法进行监听都可以我这里用的是表格所以我就监听表格里面的二维码按钮
    case 'live':
                //我这里的这个src是二维码内容大家到时候根据自己的改就行
               var src =''
               if (data.WaysRegistration == 1) {
               src = data.ImgUrl
               } else {
                   src = data.ImgUrl
               console.log(src)
                   console.log(obj)
               }
    
               $("#Activitylink").val(src)
    
               $("#ActivityTitle").text('活动码-' + data.Name)
               $("#btn").attr("data-clipboard-text", src);
               showQRcode(src)
    
               break;
    
    
    //下面这个是我们点击按钮后请求接口的方法
    function showQRcode(src) {
    
                    layer.open({
                        title: '扫码预览',
                        area: ["600px", "600px"],
                        type: 1,
                        shade: false,
                        content: $('.QRCodeDownload'),
                        success: function () {
                            var index = layer.load(1);
    
                            $.ajax({
                                //请求地址
                                url: UrlBase + "UserQRCode/GetQRCode",
                                type: "post",
                                dataType: "JSON",
                                data: {
                                    //传过去三个参数:宽、高、内容
                                    width: 250,
                                    height: 250,
                                    content: src
                                },
                                success: function (res) {
    
                                    $(".QRCodeImg").attr("src", res.Result);
                                    layer.close(index);
                                }
                            })
    
                        },
                        cancel: function (index, layero) {
                            layer.closeAll();
                            $(".QRCodeDownload").hide();
                        }
                    })
    
                }

    上面就是关于JS监听并且请求接口的方法逻辑,主要就是监听点击按钮事件、点击后弹出二维码窗口事件、展示二维码。主要分为这三种;

    4、我们准备好上方的前台代码后,切记:不要复制我的前台代码只给大家提供一个逻辑思路,大家自己写前台。接下来我们就要写后台代码非常简单无脑操作。大家首先需要新建几个类因为我们接下来会引用到里面的方法。

    大家直接复制就好。死操作:

    第一个类:Response类

    //这个类里面只需要这一个方法就行    
    
    
        /// <summary>
        /// WEBAPI通用返回泛型基类
        /// </summary>
        /// <typeparam name="T"></typeparam>
        public class Response<T> : Response
        {
            /// <summary>
            /// 回传的结果
            /// </summary>
            public T Result { get; set; }
        }

    第二个类:QRCodeHelper类,是我们的主要生成二维码的方法

    //方法大家直接复制就好了,缺少引用就添加引用缺什么就引用什么
    
    private static byte[] BitmapToBytes(Bitmap bitmap)
            {
       
                MemoryStream ms = new MemoryStream();
                bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                byte[] bytes = ms.GetBuffer();  //byte[]   bytes=   ms.ToArray(); 这两句都可以,至于区别么,下面有解释
                ms.Close();
                return bytes;
            }
    
            public static string QRCodeExecute(string str, int size)
            {
                QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
                //QRCodeGenerator.ECCLevel:纠错能力,Q级:约可纠错25%的数据码字
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(str, QRCodeGenerator.ECCLevel.Q);
                QRCode qrcode = new QRCode(qrCodeData);
                Bitmap qrCodeImage = qrcode.GetGraphic(8, Color.Black, Color.White, null, 15, 6, false);
    
                /*
                * 550为宽高
                * +60为上下左右各留出30的空白区域
    
                */
                Bitmap newBM = new Bitmap(size + 30, size + 30);
    
                //新画布
                Graphics newGP = Graphics.FromImage(newBM);
                //清除所有背景色并指定背景颜色
                newGP.Clear(Color.White);
                // 插值算法的质量
                newGP.InterpolationMode = InterpolationMode.HighQualityBicubic;
    
                newGP.DrawImage(qrCodeImage, new Rectangle(15, 15, size, size), new Rectangle(0, 0, qrCodeImage.Width, qrCodeImage.Height), GraphicsUnit.Pixel);
    
                //var bytes = BitmapToBytes(newBM);
                using var ms = new MemoryStream();
                newBM.Save(ms, ImageFormat.Jpeg);
                var bytes = ms.GetBuffer();
                newGP.Dispose();
                newBM.Dispose();
                qrGenerator.Dispose();
                var StrBase64 = "data:image/png;base64," + Convert.ToBase64String(bytes);
                return StrBase64;
                //string fileName = $"{Guid.NewGuid()}.jpg";
                //return UploadHelp.Execute(bytes, fileName, UploadFileType.QrCode, UploadFunEnum.blob);
            }

    第三个类:需要引用一个返回值的类:JsonHelper

    //里面只需要有这两样东西,我们只需要用到这两个所提供的返回值类型
    
    
    public static JsonHelper Instance { get { return _jsonHelper; } }
    
            public string Serialize(object obj)
            {
                return JsonConvert.SerializeObject(obj, new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
            }

    5、我们新建好上方的三个类之后,把方法也复制进去后,并且添加引用了,接下来操作就非常简单了,我们只需要写我们所请求的接口方法;一定要引用我们刚新创建的那三个类和别的引用。

    
    //前面也说了,前台会给我们传过来三个参数,一个是二维码内容,一个是宽,一个是高
            [HttpPost]
            public string GetQRCode(string content, int width, int height)
            {
                Response<string> Result = new Response<string>();
    
                var QRCode = QRCodeHelper.QRCodeExecute(content, size: width);
                if (!string.IsNullOrEmpty(QRCode))
                {
                    Result.Result = QRCode;
                }
                else
                {
                    Result.Code = -100;
                    Result.Message = "下载失败";
                }
                return JsonHelper.Instance.Serialize(Result);
            }

    6、这就是我们本次的生成二维码的方法了,大家有哪里不懂得可以下方留言问我,前台页面大家尽量不要复制粘贴,因为我们这个文章主要是讲述的后台代码,前台代码我只给大家提供思路和逻辑,只要请求不错,监听不错,就绝对能行

    切记一定要添加引用啊!!还有自己起的类的名字一定要和调用时候名字统一啊!!!!否则肯定会报错的!!

    更多相关内容
  • 1)VS2019 C#开发生成二维码源码 2)根据内容生成条码图片 3)可以显示图片底部显示文字信息 全开源放心下载
  • C# 生成二维码

    2018-06-06 09:21:26
    C# 生成二维码,保存为图片格式。单张图片和两张图片合成。
  • C#生成二维码的方法

    2020-09-04 01:23:43
    主要介绍了C#生成二维码的方法,包括动态链接库dll文件的调用、代码的实现与使用示例,非常实用,需要的朋友可以参考下
  • C#生成二维码

    2018-05-13 19:25:57
    C# 生成二维码 亲测可用,我自己在网上找的,请大家放心下载
  • C#实现二维码生成 以及打印机功能 有一个第三方支持文件避免了繁琐的代码
  • 基于C#生成二维码的DLL
  • C#生成二维码、ThoughtWorks.QRCode.dll下载、winform生成二维码demo下载
  • C#生成二维码demo.rar

    2020-04-11 17:10:08
    C#开发的winform生成二维码demo程序。可以输入要生成二维码的一个字符串,单击生成,这时将会生成一个二维码,字符串中可以输入中文。此程序是一个完整的程序,可以在VS中直接打开运行。
  • c# 生成二维码

    2021-01-22 17:04:04
    1.使用nuget引入 ThoughtWorks.QRCode 2.创建帮助类 QRHelper /// <summary> /// 二维码帮助类 /// </summary>... /// 生成二维码图片 /// </summary> /// <param name="imgN

    1.使用nuget引入 ThoughtWorks.QRCode
    在这里插入图片描述

    2.创建帮助类 QRHelper

    
        /// <summary>
        /// 二维码帮助类
        /// </summary>
        public class QRHeler
        {
            /// <summary>
            /// 生成二维码图片
            /// </summary>
            /// <param name="imgName">图片名称</param>
            /// <param name="imgContext">二维码内容</param>
            /// <param name="filePath">二维码路径</param>
            /// <returns></returns>
            public static bool CreateImage(string imgName, string imgContext, string filePath)
            {
                try
                {
                    int size = 10;  //二维码中每个小点的大小
                    Bitmap image = CreateImgCode(imgContext, size); //生成二维码图片
                    if (!Directory.Exists(filePath))
                    {
                        Directory.CreateDirectory(filePath);
                    }
                    image.Save(filePath + imgName, System.Drawing.Imaging.ImageFormat.Png);
    
                    return true;
                }
                catch (Exception ex)
                {
                    LogHelper.Error(ex.Message);
                    return false;
                }
            }
            
            /// <summary>
            /// 生成二维码
            /// </summary>
            /// <param name="codeNumber">要生成二维码的字符串</param>
            /// <param name="size">二维码每个颗粒大小尺寸</param>
            /// <returns></returns>
            private static Bitmap CreateImgCode(string codeNumber, int size)
            {
                //创建二维码生成类  
                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
                //设置编码模式  
                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                //设置编码测量度  
                qrCodeEncoder.QRCodeScale = size;
                //设置编码版本  
                qrCodeEncoder.QRCodeVersion = 0;
                //设置编码错误纠正  
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                //生成二维码图片  
                System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber);
    
                return image;
            }
        }
    

    3.接口使用

    
            /// <summary>
            /// 获取二维码路径
            /// </summary>
            /// <returns></returns>
            [HttpGet]
            public ApiResultData SaveQr()
            {
                var name = "qr_" + Guid.NewGuid().ToString("N") + ".png";
                var cn = "http://www.baidu.com";
                var path = "/upload/Qr/";
                var fPath = System.Web.Hosting.HostingEnvironment.MapPath(path);
                var flag = QRHeler.CreateImage(name, cn, fPath);
                if (flag)
                    return Success(path + name);
                else
                    return Error("生成二维码失败,请查看日志");
    
    
            }
    

    4.接口查询结果
    在这里插入图片描述

    展开全文
  • c# 生成二维码的示例

    2020-12-16 20:01:03
    最好是能在代码中直接生成一个二维码图片,这里我就介绍下使用QRCoder类库在代码中生成二维码。 网上生成二维码的组件还是挺多的,但是真正好用且快速的却不多。QRCoder就是我在众多中找到的,它的生成速度快、而且...
  • c#生成二维码

    2018-10-09 13:15:05
    C#生成二维码,可调整大小保存二维码图片,生成的二维码可手机扫描
  • 1)VS2019 C#开发生成二维码源码 2)根据内容生成条码图片 3)可以显示图片底部显示文字信息 4)二维码支持导出PDF,方便打印 5)不使用第三方插件才能生成二维码 全开源放心下载
  • C#生成二维码源码

    2017-04-19 17:39:54
    C#生成二维码源码
  • 利用thoughtworks.qrcode,生成二维码,可添加自己LOGO
  • C#生成二维码带logo

    2017-08-15 17:00:21
    使用ZXing生成二维码,抄别人的自己实现的
  • 可自动生成条形码(一维码) 二维码 包含源码 简单易懂,调取即用, 可设置二维码条形码的背景色和自身颜色 有保存本地图片功能!
  • C#生成二维码代码

    2017-08-01 16:27:44
    C#生成二维码实例,无错,打开即可测试,简单易懂
  • c#生成二维码.rar

    2019-08-13 14:15:10
    c#前端只需要把img的src写成该方法即可。二维码生成源代码,有问题请留言,我看到就会回复。
  • C#生成二维码示例

    2021-03-16 01:20:19
    摘要:C#源码,图形图像,二维码,QuickMark.dll C#生成二维码示例,今天整了一下前段时间做二维码的一些资料,顺便共享一下。本程序是基于ThoughtWorks.QRCode.DLL的二度处理和封装,希望能给初学者带来帮助!  ...
  • C#生成二维码的两种方式

    千次阅读 2021-11-21 16:44:04
    最近在做项目的时候遇到一个需求是将文本内容生成二维码图片的,对于这个需求那就直接上手(两种方法,我比较喜欢第二种方式,往上面也是有很多的方法。这里只作为个人纪录) 方法一:ThoughtWorks.QRCode 还有解析...

    前言

    最近在做项目的时候遇到一个需求是将文本内容生成二维码图片的,对于这个需求那就直接上手(两种方法,我比较喜欢第二种方式,往上面也是有很多的方法。这里只作为个人纪录)

    方法一:ThoughtWorks.QRCode

    还有解析,并且还能添加彩色的点,应该是基于Drawing的
    效果图

    第一步: NeGet包引用ThoughtWorks.QRCode

    using System;
    using System.Drawing;
    using System.Text;
    using ThoughtWorks.QRCode.Codec;
    using ThoughtWorks.QRCode.Codec.Data;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                qrCodeEncoder.QRCodeScale = 4;
                qrCodeEncoder.QRCodeVersion = 8;
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                System.Drawing.Image image = qrCodeEncoder.Encode("http://weixin.qq.com/r/qzj377TEKulVrfCM9225", Encoding.UTF8);
                string filename = Guid.NewGuid() + ".jpg";
                string filepath =  filename;
                System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
                image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
                fs.Close();
                image.Dispose();
    
                //二维码解码
                var codeDecoder = CodeDecoder(filepath);
    
                Console.WriteLine($"二维码内容:{codeDecoder}");
                Console.WriteLine("---");
                Console.Read();
            }
    
            /// <summary>
            /// 二维码解码
            /// </summary>
            /// <param name="filePath">图片路径</param>
            /// <returns></returns>
            public static string CodeDecoder(string filePath)
            {
                if (!System.IO.File.Exists(filePath))
                    return null;
                Bitmap myBitmap = new Bitmap(Image.FromFile(filePath));
                QRCodeDecoder decoder = new QRCodeDecoder();
                string decodedString = decoder.decode(new QRCodeBitmapImage(myBitmap), Encoding.UTF8);
                return decodedString;
            }
        }
    }
    
    
    

    方法二:QRCoder

    我喜欢这个方法,先上效果图,这个可以自定义图片,而且还有边框,其他的方法暂时没有研究

    在这里插入图片描述
    第一步: NeGet包引用QRCoder

    using System;
    using System.Drawing;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                
                System.Drawing.Image image = code("http://weixin.qq.com/r/qzj377TEKulVrfCM9225", 5,10, "C:\\Users\\Pride\\Pictures\\myimage\\1.jpg", 15,1,true);
                string filename = Guid.NewGuid() + ".jpg";
                string filepath =  filename;
                System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
                image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
                fs.Close();
                image.Dispose();
                Console.WriteLine("OK");
                Console.Read();
            }
    
              public class QRCodeHelper
        {
            //todo 1.保存为二维码
            //2.上传七牛云
    
            public static QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
    
            /// <summary>
            /// 生成二维码
            /// </summary>
            /// <param name="link">生成的内容</param>
            /// <returns></returns>
            public static async Task<string> GetQRCode(string link)
            {
                string guid = Guid.NewGuid().ToString().Replace("-", "") + ".png";    //图片名称
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(link, QRCodeGenerator.ECCLevel.Q);
                QRCode qrcode = new QRCode(qrCodeData);
                Bitmap qrCodeImage = qrcode.GetGraphic(5, System.Drawing.Color.Black, System.Drawing.Color.White, null, 15, 3);
                string filePath = Path.Combine("qrcodetest", guid); //图片保存地址
                //获取文件对象
                FileInfo file = new FileInfo(filePath);
                //判断文件夹是否创建
                if (!file.Directory.Exists) { file.Directory.Create(); }
                qrCodeImage.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
               
                return filePath;
    
                /* GetGraphic方法参数说明
                     public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)
                     int pixelsPerModule:生成二维码图片的像素大小 ,我这里设置的是5
                     Color darkColor:暗色   一般设置为Color.Black 黑色
                     Color lightColor:亮色   一般设置为Color.White  白色
                     Bitmap icon :二维码 水印图标 例如:Bitmap icon = new Bitmap(context.Server.MapPath("~/images/zs.png")); 默认为NULL ,加上这个二维码中间会显示一个图标
                     int iconSizePercent: 水印图标的大小比例 ,可根据自己的喜好设置
                     int iconBorderWidth: 水印图标的边框
                     bool drawQuietZones:静止区,位于二维码某一边的空白边界,用来阻止读者获取与正在浏览的二维码无关的信息 即是否绘画二维码的空白边框区域 默认为true
               */
            }
        }
    
    


    你喜欢哪种方式呢?

    The birth of life is a pleasant surprise.Life is you.
    是惊喜,生活是你的点赞分享传统美德
    Date:2021-11-21 今晚打老虎

    展开全文
  • C#生成二维码和条码类源码,BarCodeHelper.cs,QRCodeHelper.cs
  • WPF C#生成二维码源码下载,基于.NET Framework4.5.1,可用于商业用途! 用于测试exe下载地址:https://download.csdn.net/download/ahphong/75825712

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,004
精华内容 2,401
关键字:

c#生成二维码

友情链接: ISO27145.rar