文档章节

C#运用GmaQrCode生成二维码

彭泽0902
 彭泽0902
发布于 2016/11/24 18:47
字数 354
阅读 2
收藏 0
点赞 0
评论 0

    项目中需要生成二维码,方法比较多,可以采用JS插件,也可以采用第三方插件后台生成二维码,在后台方法中可以采用QRCode或者GmaQrCode,现在介绍一种C#在后台生成二维码的方法:

   

/// <summary>
        /// 获取二维码
        /// </summary>
        /// <param name="codeString">编码字符</param>
        /// <returns>二维码地址</returns>
        public static string ReturnGmaQrCode(string codeString)
        {
            try
            {
                using (var ms = new MemoryStream())
                {
                    //const string stringtest = "中国inghttp://www.baidu.com/mvc.test?&";
                    if (string.IsNullOrEmpty(codeString))
                    {
                        throw new ArgumentNullException(codeString);
                    }
                    var stringtest = codeString;
                    CreateGmaQrCodeHelper(stringtest, ms);
                    var img = Image.FromStream(ms);
                    var filename = DateTime.Now.ToString("yyyymmddhhmmss");
                    var path = HttpContext.Current.Server.MapPath("~/image/") + filename + ".png";
                    img.Save(path);
                    return path;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

        }

        /// <summary>
        /// 获取二维码
        /// </summary>
        /// <param name="strContent">待编码的字符</param>
        /// <param name="ms">输出流</param>
        ///<returns>True if the encoding succeeded, false if the content is empty or too large to fit in a QR code</returns>
        public static bool CreateGmaQrCodeHelper(string strContent, MemoryStream ms)
        {
            try
            {
                //误差校正水平
                const ErrorCorrectionLevel ecl = ErrorCorrectionLevel.M;
                //待编码内容
                var content = strContent;
                //空白区域
                const QuietZoneModules quietZones = QuietZoneModules.Two;
                //大小
                const int moduleSize = 12;
                var encoder = new QrEncoder(ecl);
                QrCode qr;
                //对内容进行编码,并保存生成的矩阵
                if (encoder.TryEncode(content, out qr))
                {
                    var render = new GraphicsRenderer(new FixedModuleSize(moduleSize, quietZones));
                    render.WriteToStream(qr.Matrix, ImageFormat.Png, ms);
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return true;
        }

    在asp.net的项目中,将生成的二维码地址返回至当前方法。可以采用ashx文件加载图片文件,在页面中获取地址,可以在页面中显示二维码资质。

 

© 著作权归作者所有

共有 人打赏支持
彭泽0902
粉丝 0
博文 44
码字总数 57771
作品 0
武汉
高级程序员
个性二维码开源专题

由C#编写的个性二维码底层,已应用到 码晒客/疯狂创意二维码等项目上,并获得多项软件著作专利。 疯狂创意二维码 疯狂创意二维码是可用于生成风格独特的个性化二维码生成器,用户可以将目标信...

cheng5x ⋅ 2014/06/06 ⋅ 0

C#开发微信门户及应用(32)--微信支付接入和API封装使用

在微信的应用上,微信支付是一个比较有用的部分,但也是比较复杂的技术要点,在微商大行其道的年代,自己的商店没有增加微信支付好像也说不过去,微信支付旨在为广大微信用户及商户提供更优质...

walb呀 ⋅ 2017/12/04 ⋅ 0

个性二维码--YcQrCode

由C#编写的个性二维码底层,已应用到 码晒客/疯狂创意二维码等项目上,并获得多项软件著作专利。 疯狂创意二维码 疯狂创意二维码是可用于生成风格独特的个性化二维码生成器,用户可以将目标信...

cheng5x ⋅ 2014/06/08 ⋅ 0

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

  二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,...

雲霏霏 ⋅ 2015/03/04 ⋅ 0

Android 二维码 生成和识别(附Demo源码)

Edited by mythou 原创博文,转载请标明出处:http://www.cnblogs.com/mythou/p/3280023.html 已测试 -- 绝对靠谱 今天讲一下目前移动领域很常用的技术——二维码。现在大街小巷、各大网站都...

伽罗kapple ⋅ 2016/04/23 ⋅ 0

[ASP.NET]二维码的创建

又好一段时间没有写写东西了,继续回归原来的模式,多做记录,最近要实现个unity的二维码方面的功能,首先就要解决生成二维码的问题,这个倒是有这方面的组件,然后我通过强大的反编译工具R...

蓬莱仙羽 ⋅ 2014/04/04 ⋅ 0

C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码

本文介绍在 C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码。网上文章大多只是简单介绍内置参数的设置,根据我的使用目的,增加了自定义目标二维码图片尺寸和白边边框。...

科技小毛 ⋅ 2017/10/11 ⋅ 0

C#实现基于ASP.NET SignalR:扫描二维码登录PC网站

移动互联网的兴起,掀起了另一股热潮。社会的发展,促使IT界,不断更新。不同的语言,不同的平台,衍生出层出不穷的技术框架。行业的种种,或大或小的变革,在不同程度上,改变着我们的生活。...

李朝强 ⋅ 2016/11/22 ⋅ 1

frogchou/FiwanQRCode

#FiwanQRCode ####飞网QR二维码生成器,用户可以通过这个工具生成QR码。面向开发人员,和经常接触使用各种二维码的人,这个工具能帮助开发二维码的人员生成各种格式二维码,包括png,jpg,b...

frogchou ⋅ 2017/04/26 ⋅ 0

使用PHP生成二维码的二种方法(带logo图像)

分享下如何使用PHP生成二维码,以及如何生成中间带LOGO图像的二维码 一、利用Google API生成二维码 Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: 二、使用P...

mysoftsky ⋅ 2014/07/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 13分钟前 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部