使用NuGget添加 ThoughtWorks.QRCode

在项目引用:

using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;

二维码生成:

/// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="strData">要生成的文字或者数字,支持中文。</param>
        /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>
        /// <param name="level">大小:L M Q H</param>
        /// <param name="version">版本:如 8</param>
        /// <param name="scale">比例:如 4</param>
        /// <returns></returns>
        public ActionResult Choose(string strData, string qrEncoding, string level, int version, int scale)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeBackgroundColor = Color.White;//设置二维码背景颜色
            qrCodeEncoder.QRCodeForegroundColor = Color.Black;//设置二维码前景色
            string encoding = qrEncoding;
            switch (encoding)
            {
                case "Byte":
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                    break;
                case "AlphaNumeric":
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
                    break;
                case "Numeric":
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;
                    break;
                default:
                    qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                    break;
            }

qrCodeEncoder.QRCodeScale = scale;
            qrCodeEncoder.QRCodeVersion = version;
            switch (level)
            {
                case "L":
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
                    break;
                case "M":
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                    break;
                case "Q":
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
                    break;
                default:
                    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
                    break;
            }

//文字生成图片
            Image image = qrCodeEncoder.Encode(strData, Encoding.UTF8);

Bitmap bitmap = new Bitmap(image.Width + 3, image.Height + 3);
            Graphics g = Graphics.FromImage(bitmap);
            g.Clear(Color.White);
            g.DrawRectangle(new Pen(Color.White), new Rectangle(0, 0, bitmap.Width, bitmap.Height));
            g.DrawImage(image, new PointF(2, 2));

string filename = DateTime.Now.ToString("yyyyMMddHHmmss");
            string filepath = Server.MapPath(@"/Upload/" + filename + ".png");
            bitmap.Save(filepath, System.Drawing.Imaging.ImageFormat.Png);

return Content(@"/Upload/" + filename + ".png");
        }

二维码解析:

public ActionResult QRCodeDecoderUtil(string bitmaps)
        {
            string fileUrl = Server.MapPath(@"/Upload/" + bitmaps);
            Bitmap myBitmap = new Bitmap(Image.FromFile(fileUrl));
            QRCodeDecoder decoder = new QRCodeDecoder();
            string decodedString = decoder.decode(new 
            QRCodeBitmapImage(myBitmap),Encoding.UTF8);
            return Content(decodedString);
        }

.NET 二维码生成相关推荐

  1. 舒工深度解析不规则场地座位二维码生成规则

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  2. 玩转Android之二维码生成与识别

    二维码,我们也称作QRCode,QR表示quick response即快速响应,在很多App中我们都能见到二维码的身影,最常见的莫过于微信了.那么今天我们就来看看怎么样在我们自己的App中集成二维码的 ...

  3. java 二维码生成和解析

    2019独角兽企业重金招聘Python工程师标准>>> <!-- 二维码 --><dependency><groupId>com.google.z ...

  4. 支付宝支付 第五集:二维码生成工具

    支付宝支付 第五集:二维码生成工具 一.代码 目录结构 BufferedImageLuminanceSource.java package com.dzy.alipay.qrcode;import c ...

  5. Android之二维码生成与扫描

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428 本文出自:[顾林海的博客] ##前言 月底离开公司,准备 ...

  6. [开源]C#二维码生成解析工具,可添加自定义Logo

    原文:[开源]C#二维码生成解析工具,可添加自定义Logo 二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Co ...

  7. Java 快速开发二维码生成服务

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 不知道从什么 ...

  8. 谷歌zxing 二维码生成工具

    一.加入maven依赖 <!-- 谷歌zxing 二维码 --> <dependency><groupId>com.google.zxing</groupId ...

  9. simple go web application 二维码生成 打包部署

    go语言简易web应用 & 二维码生成及解码 & 打包部署 转载请注明出处: https://www.cnblogs.com/funnyzpc/p/10801476.html 前言(闲 ...

  10. 微信公众平台----带参数二维码生成和扫描事件

    原文:微信公众平台----带参数二维码生成和扫描事件 摘要: 账号管理----生成带参数的二维码 消息管理----接收消息----接收事件推送 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众 ...

最新文章

  1. XamarinAndroid组件教程RecylerView动画组件使用动画(2)
  2. java 查询表 并返回数据_ajax与java前后台传值及数据表查询解决一个bug的问题
  3. java web自动化部署_JavaWeb项目自动化部署脚本
  4. 在阿里干了 5 年招聘,这 10 条建议我必须分享给你!
  5. Sql Server发布订阅如何添加新表如何不初始化整个快照
  6. css中调整高度充满_6个很棒的PostCSS插件,让您成为一个CSS向导
  7. Bailian4140 方程求解【二分法】
  8. vue从入门到进阶:Class 与 Style 绑定(四)
  9. php代码整理,值得注意的PHP代码样式规范
  10. 斐讯K3路由器TTL快速刷机
  11. Python数据处理 | 批量提取文件夹下的csv文件,每个csv文件根据列索引提取特定几列,并将提取后的数据保存到新建的一个文件夹
  12. 金碟财务软找不到服务器怎么办,金蝶财务软件KIS标准版客户端连接不上服务器解决办法.pdf...
  13. Mysql—— order 和 limit 的用法
  14. pymysql操作MySQL数据库表-----爬虫豆瓣top250电影并存入数据库
  15. G. I love Codeforces
  16. 树莓派GPIO控制/使用的教程
  17. IT职业规划:大公司VS小公司,怎样选择更有前途?
  18. 视频剪辑软件如何合并分割视频文件
  19. 《计算机应用基础》 东师,A东师《计算机应用基础》15春在线作业 .doc
  20. 编写第一个 Arduino 程序

热门文章

  1. 搭建企业级别nexus私服
  2. 【927. 三等分】
  3. js+php做省份城市选择,三级联动,前后端简单交互,最详细
  4. 西门子PID程序西门子PLC 1200和多台G120西门子变频器Modbud RTU通讯,带西门子触摸屏
  5. CPMP、PMP及IPMP的全面比较
  6. Windows将时间设置到秒的方法
  7. Winusb WinUsb_SetPipePolicy函数的使用
  8. 数字化门店拓客营销引流系统
  9. C# 淘宝商品微信返利助手开发-(五)返利助手开发(3)淘口令如何通过API转换为链接
  10. 【Docker】(八) Docker可视化工具Portainer(汉化)