QRCode生成二维码,并将二维码保存成图片

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Gma.QrCodeNet.Encoding;

using Gma.QrCodeNet.Encoding.Windows.Render;

using ThoughtWorks.QRCode.Codec;

using System.IO;

namespace Utility

{

    /// <summary>

    /// 二维码

    /// 150908-1533

    /// atun

    /// </summary>

    public class ErWeiMa

    {

        #region 将二维码给图片

        /// <summary>

        /// 将二维码给图片

        /// 150908-1557

        /// atun

        /// </summary>

        /// <param name="str">二维码的内容</param>

        /// <param name="Fiel_Path">图片路径:up/com_erweima/ 注:不加@</param>

        /// <param name="com_id">公司ID,</param>

        /// <returns>返回图片的路径</returns>

        public static string creatQRCodeImage(string str, string File_Path, int com_id)

        {

            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            //设置背景颜色 

            //qrCodeEncoder.QRCodeBackgroundColor = Color.FromArgb(255, 255, 0); 

            //设置前景色 

            //qrCodeEncoder.QRCodeForegroundColor = Color.GreenYellow; 

            //编码格式 

            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;

 

            //设置每个二维码像素点的大小 

            qrCodeEncoder.QRCodeScale = 4;

            //QR码版本 

            //QR码所允许规格系列为21×21模块(版本1)~177×177模块(版本40) 

            qrCodeEncoder.QRCodeVersion =8;

            //纠错等级 

            //level L : 最大 7% 的错误能够被纠正; · 

            //level M : 最大 15% 的错误能够被纠正; ·  

            //level Q : 最大 25% 的错误能够被纠正; ·  

            //level H : 最大 30% 的错误能够被纠正; 

            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;

 

            //自定义的二维码数据 

            String data = str;

            //Response.Write(data); 

            //画图 

            System.Drawing.Bitmap image = qrCodeEncoder.Encode(data);

 

            System.IO.MemoryStream MStream = new System.IO.MemoryStream();

 

            image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);

            //写图片 

            //return MStream.ToArray();

            //Response.BinaryWrite(MStream.ToArray());

            //文件路径 

               //当前项目路径 

            string img = string.Format(@"{0}/{1}.png", File_Path, com_id);

            try

            {

 

                if (!File.Exists(File_Path))

                {

 

                    string img_url = string.Format(@"../" + img);

                    FileStream fs = new FileStream(System.Web.HttpContext.Current.Server.MapPath(img_url), FileMode.CreateNew, FileAccess.ReadWrite);

                    BinaryWriter bw = new BinaryWriter(fs);

                    byte[] by = MStream.ToArray();

                    for (int i = 0; i < MStream.ToArray().Length; i++)

                        bw.Write(by[i]);

                    fs.Close();

 

                }

 

            }

            catch (Exception ex)

            { }

            return img;

        }

        #endregion

    }

}

 

可以在这里下载DLL,DLL版本一定要对上,不然会出现索引超出界限

http://files.cnblogs.com/files/c546170667/QrCode.Net.zip

转载于:https://www.cnblogs.com/c546170667/articles/4792507.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
没问题,下面是使用 vue-qrcode插件 生成二维码并下载的代码示例: 1.首先,你需要安装 vue-qrcode 插件,可以使用 npm 命令来进行安装: ``` npm install vue-qrcode --save ``` 2.然后,在需要使用二维码的 Vue 组件中,导入 vue-qrcode 插件并创建一个新的 Vue 实例,并在这个实例中传递需要生二维码数据和相关参数: ``` <template> <div> <qrcode-vue :value="qrData" :size="150"></qrcode-vue> <button @click="downloadQRCode()">下载二维码</button> </div> </template> <script> import QRCodeVue from 'vue-qrcode' import domtoimage from 'dom-to-image' export default { name: 'QRCodeGenerator', components: { QRCodeVue, }, data() { return { qrData: '二维码数据', } }, methods: { downloadQRCode() { const qrCodeEl = document.querySelector('.qrcode-vue') domtoimage .toBlob(qrCodeEl) .then(blob => { const url = window.URL.createObjectURL(blob) const a = document.createElement('a') a.href = url a.download = 'qrcode.png' a.click() }) .catch(error => { console.error('Error occurred while downloading QR Code:', error) }) }, }, } </script> ``` 3.接下来,在 downloadQRCode 方法中,我们使用 dom-to-image 库将二维码图片转换为 Blob对象, 然后创建一个链接和 a 标签来生下载链接,并触发 a 标签的 click事件进行下载。 请注意,这个例子使用了 dom-to-image库来转换图片为 Blob 对象,因此需要使用 npm 命令进行安装: ``` npm install dom-to-image --save ``` 希望这个代码示例能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值