如何利用ThoughtWorks.QRCode 生成二维码

简介: 1.引用ThoughtWorks.QRCode.dll 在nuget上查找即可引用,也可自行下载 2.生成二维码静态方法 参数: 二维码内容:fileUrl  二维码图片名:typeName     #region 生成二维码图片 /// ...

 

1.引用ThoughtWorks.QRCode.dll

在nuget上查找即可引用,也可自行下载

2.生成二维码静态方法

参数:

二维码内容:fileUrl 

二维码图片名:typeName 

     #region 生成二维码图片
        /// <summary>
        ///  生成二维码图片
        /// </summary>
        /// <returns>上传图片路径</returns>
        public static string UploadQRCodeImage(string fileUrl, string typeName)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            String encoding = "Byte";
            if (encoding == "Byte")
            {
                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            }
            else if (encoding == "AlphaNumeric")
            {
                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
            }
            else if (encoding == "Numeric")
            {
                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;
            }
            try
            {
                int scale = 3;
                qrCodeEncoder.QRCodeScale = scale;
            }
            catch (Exception ex)
            {
                // return;
            }
            try
            {
                int version = 0;//出现数组溢出问题,使用0会自动检测,使得encode通过
                qrCodeEncoder.QRCodeVersion = version;
            }
            catch (Exception ex)
            {
                // MessageBox.Show("Invalid version !");
            }

            string errorCorrect = "H";
            if (errorCorrect == "L")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
            else if (errorCorrect == "M")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            else if (errorCorrect == "Q")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
            else if (errorCorrect == "H")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;

            Image image;
          //  String data = fileUrl;
            image = qrCodeEncoder.Encode(fileUrl);

            //上传目录   
            string directory = HttpContext.Current.Server.MapPath(QRCodePath);
            string fileName = typeName + ".png";// + fileUrl.Split('.').Last();
            
            if (!String.IsNullOrEmpty(fileName))
            {
                //文件全路径   
                string path = directory + fileName;
                //判断目录是否存在   
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }
                //文件存在就删除文件   
                // AccessoryAPPI.DeleteFiles(path);//个人类库方法,仅作记录
          File.Delete(path);

image.Save(path); }
return ""; } #endregion

3.扩展

 a.该方法可以直接返回path,即二维码图片路径;

 b.如果使用.NET 4.0 会遇到展示的安全限制问题,可参考下文,返回base64图片;

  http://www.cnblogs.com/xcsn/p/5278362.html

 

 

 

相关文章
|
索引
UniApp 组件 u-tabs 详细讲解
UniApp 组件 u-tabs 详细讲解
2632 1
|
前端开发 JavaScript Java
Layui的入门级教学,基本使用及如何实现登入与注册页面
Layui的入门级教学,基本使用及如何实现登入与注册页面
603 0
|
算法 Java 测试技术
Java实现数据压缩所有方式性能测试
Java实现数据压缩所有方式性能测试
758 0
|
4月前
|
人工智能 自然语言处理 开发工具
HarmonyOS NEXT~鸿蒙开发能力:HarmonyOS SDK AI 全解析
本文深入解析HarmonyOS SDK中的AI功能集,涵盖分布式AI引擎、核心组件(NLP、计算机视觉等)及智能决策能力。通过代码示例与开发实践指南,帮助开发者掌握环境配置、性能调优及多场景应用(智能家居、移动办公等)。同时探讨性能优化策略与未来演进方向,助力构建高效分布式智能应用。
304 9
|
11月前
|
SQL 监控 测试技术
SQL现在到哪个版本及版本更新技巧与方法
SQL(Structured Query Language)作为数据库管理和操作的标准语言,随着技术的不断进步和数据库管理系统(DBMS)的持续发展,其版本也在不断更新和完善
1018 5
|
Windows
IIS应用程序池崩溃的解决方案
IIS是微软开发的Web服务器软件,被广泛用于Windows平台上的网站托管。在使用IIS过程中,可能会遇到应用程序池崩溃的问题,原因可能有很多,包括代码错误、资源不足、进程冲突等。本文将为大家介绍IIS应用程序池崩溃的问题分析和解决方案。如果您在IIS的Events日志下观察到以下任一事件,那么本文适合您。
402 0
|
存储 编译器 开发工具
面向 C++ 的现代 CMake 教程(三)(2)
面向 C++ 的现代 CMake 教程(三)
220 0
|
XML 前端开发 Java
LayUI入门,以及介绍
LayUI入门,以及介绍
552 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的理发店会员管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的理发店会员管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
216 0
|
缓存 NoSQL 应用服务中间件
基于Redis和Nginx实现高并发缓存架构
基于Redis和Nginx实现高并发缓存架构
1561 0