二维码生成基于Gma.QrCodeNet.Encoding

参考:http://www.cnblogs.com/vmyspace/archive/2012/04/05/2433233.html

今天,项目需要,参考资料写了个二维码生成后台  基于Gma.QrCodeNet.Encoding

前台html直接请求地址,固定图片高宽就能用。

using System;
using System.Collections.Generic;
using System.Web;
using Gma.QrCodeNet.Encoding;
using System.IO;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace TestWeb.erweima_test
{
    /// <summary>
    /// Handler2 的摘要说明
    /// </summary>
    public class Handler2 : IHttpHandler
    {

public void ProcessRequest(HttpContext context)
        {
            if (!string.IsNullOrEmpty(context.Request["qrdata"].ToString()))
            {
                CreateQr(context);
            }
           
        }

public void CreateQr(HttpContext context)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
            QrCode qrCode = new QrCode();
            //String data = "0150204whxtl/?type=invate";
            String data = context.Request["qrdata"].ToString() ;
            //String data = context.Request.QueryString["qrdata"].ToString();
            System.Drawing.Bitmap image;
            qrCode = qrEncoder.Encode(data);
            image = new Bitmap(qrCode.Matrix.Width * 5, qrCode.Matrix.Height * 5);
            image.SetResolution(180f, 180f);
            Graphics gdiobj = Graphics.FromImage(image);
            gdiobj.CompositingQuality = CompositingQuality.HighQuality;
            gdiobj.SmoothingMode = SmoothingMode.HighQuality;
            gdiobj.InterpolationMode = InterpolationMode.HighQualityBicubic;
            gdiobj.PixelOffsetMode = PixelOffsetMode.HighQuality;

for (Int32 i = 0; i < qrCode.Matrix.Height; i++)
            {
                for (Int32 j = 0; j < qrCode.Matrix.Width; j++)
                {
                    if (qrCode.Matrix.InternalArray[i, j])
                    {
                        gdiobj.FillRectangle(new SolidBrush(Color.Black), i * 5, j * 5, 5, 5);
                    }
                }
            }

System.Drawing.Imaging.EncoderParameters ep = new System.Drawing.Imaging.EncoderParameters(1);
            ep.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 800L);

System.IO.MemoryStream MStream = new System.IO.MemoryStream();
            image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);
            // image.Save(MStream, null, ep);
            context.Response.ClearContent();
            context.Response.ContentType = "image/Png";
            context.Response.BinaryWrite(MStream.ToArray());
        
        
        }

public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

时间: 2024-08-03 10:16:09

二维码生成基于Gma.QrCodeNet.Encoding的相关文章

在云平台上基于Go语言+Google图表API提供二维码生成应用

二维码能够说已经深深的融入了我们的生活其中.到处可见它的身影:但通常我们都是去扫二维码, 曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人. 这里就分享一下基于Go语言+Google图表API提供二维码生成功能的小应用,并演示怎样把它公布到云平台上, 让每一个人都能够通过网络訪问使用它. Google图表API Google在http://chart.apis.google.com 上提供了一个将表单数据自己主动转换为图表的服务. 只是,该服务非常难交

超实用python小项目--基于python的手机通讯录二维码生成网站--1、项目介绍和开发环境

这个项目是我做完整的第一个python web项目,对于新手来说,这个项目绝对是一个特别好的练手项目. 起名还是困难,但是自己确实比较烦输入这么长的名字(手机通讯录二维码生成网站)去定义这个网站,所以还是给这个项目起个名字吧,叫什么呢?就叫 "鹅日通讯录"吧(Earth address list). --------------------------------------------------------------------------------------------我是

.NET 二维码生成(ThoughtWorks.QRCode)

引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string nr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4

iOS开发 二维码生成

基于libqrencode的二维码生成 + (void)drawQRCode:(QRcode *)code context:(CGContextRef)ctx size:(CGFloat)size { unsigned char *data = 0; int width; data = code->data; width = code->width; float zoom = (double)size / (code->width + 2.0 * qr_margin); CGRect r

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

二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,中文等等.今天就来跟大家分享一下我的二维码生成解析工具,主要功能就是生成二维码,并且可以添加自定义的Logo.当然,网络上面生成二维码的工具多如牛毛,生成二维码早已不再新鲜.这个工具的一个亮点就是可以识别二维码,下面就来具体看看吧,不过首先要补充一点二维码的知识. 一.二维码基础知识 一.

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

二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,中文等等.今天就来跟大家分享一下我的二维码生成解析工具,主要功能就是生成二维码,并且可以添加自定义的Logo.当然,网络上面生成二维码的工具多如牛毛,生成二维码早已不再新鲜.这个工具的一个亮点就是可以识别二维码,下面就来具体看看吧,不过首先要补充一点二维码的知识.  一.二维码基础知识 一

iOS 花式二维码生成和二维码识别

iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个小库方便以后使用. 项目地址:https://github.com/EyreFree/EFQRCode EFQRCode 是一个用 Swift 编写的用来生成和识别二维码的库,它基于系统二维码生成与识别进行开发. 生成:利用输入的水印图/图标等资源生成各种艺术二维码: 识别:识别率比 iOS 原生二

Java二维码生成与解码

基于google zxing 的Java二维码生成与解码 一.添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包) <!-- google二维码工具 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.1.0</version> </dependen

杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel

本篇就最近工作解决的问题做个代码收集.包括以下几个方面:发邮件.二维码生成.文件下载.压缩.导出excel.有一种可用的解决方法就好,不求全面,不求原理. 1.发邮件: 命名空间:System.Net.Mail程序集:System(在 system.dll 中) tips: MailMessage 类的实例用于构造可使用 SmtpClient 类传输到 SMTP 服务器以便传递的电子邮件. 若要指定电子邮件的发件人.收件人和内容,请使用 MailMessage 类的关联属性.一般需要注意的有 发