博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成二维码(支持中文)
阅读量:7098 次
发布时间:2019-06-28

本文共 5640 字,大约阅读时间需要 18 分钟。

using System;using System.Collections.Generic;using System.Text;//using Aspose.BarCode;using System.Drawing.Imaging;//using ThoughtWorks.QRCode.Codec;//using System.Drawing.Imaging;using ThoughtWorks.QRCode.Codec;using ThoughtWorks.QRCode.Codec.Data;using ThoughtWorks.QRCode.Codec.Util;namespace QrCode{    public static class Qr    {        public static string toUrl2(string str)        {            try            {                Encoding utf8 = Encoding.UTF8;                Encoding gb2312 = Encoding.GetEncoding("GB2312");                byte[] unicodeBytes = gb2312.GetBytes(str);                byte[] asciiBytes = Encoding.Convert(gb2312, utf8, unicodeBytes);                char[] asciiChars = new char[utf8.GetCharCount(asciiBytes, 0, asciiBytes.Length)];                utf8.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);                string result = new string(asciiChars);                return result;            }            catch            {                return "";            }        }        public static string toUrl(string str)        {            try            {                Encoding utf8 = Encoding.UTF8;                Encoding gb2312 = Encoding.GetEncoding("GB2312");                byte[] unicodeBytes = utf8.GetBytes(str);                byte[] asciiBytes = Encoding.Convert(utf8, gb2312, unicodeBytes);                char[] asciiChars = new char[utf8.GetCharCount(asciiBytes, 0, unicodeBytes.Length)];                utf8.GetChars(asciiBytes, 0, unicodeBytes.Length, asciiChars, 0);                string result = new string(asciiChars);                return result;            }            catch            {                return "";            }        }        public static bool OutQrInfo(string Info, string picFileName, out string errMsg)        {            errMsg = null;            try            {                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;                qrCodeEncoder.QRCodeScale = 4;                qrCodeEncoder.QRCodeVersion = 8;                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;                System.Drawing.Bitmap image = qrCodeEncoder.Encode(Info, Encoding.UTF8);                string filepath= AppDomain.CurrentDomain.BaseDirectory;                image.Save(filepath + "/QRCodeImg/" + picFileName); //, System.Drawing.Imaging.ImageFormat.Gif);                return true;            }            catch (Exception te)            {                errMsg = te.Message;                return false;            }        }        //public static string toUrlX(string s)        //{        //    return s != null ? HttpContext.Current.Server.UrlEncode(s) : null;        //}        public static string OutQr4Url(string url, string caption)        {            string turl = string.Format("MEBKM:{0};URL:{1};", (caption), (url));            return turl;            //string errMsg;            //OutQrInfo(url,  out errMsg);        }        public static string OutQr4SMS(string Mobile, string Info)        {            string url = string.Format("SMSTO:{0}:{1}", (Mobile), (Info));            return url;            //string errMsg;            //OutQrInfo(url,  out errMsg);        }        public static string OutQr4MMS(string Mobile, string Info)        {            string url = string.Format("MMSTO:{0}:{1}", (Mobile), (Info));            return url;            //string errMsg;            //OutQrInfo(url,  out errMsg);        }        public static string OutQr4Email(string Email, string Caption, string Body)        {            string url = string.Format("MATMSG:TO:{0};SUB:{1};BODY:{2};", (Email), (Caption), (Body));            return url;            //string errMsg;            //OutQrInfo(url,  out errMsg);        }        public static string OutQr4WiFi(string WEP_WPA, string SID, string Password)        {            string url = string.Format("WIFI:T:{0};S:{1};P:{2};", (WEP_WPA), (SID), (Password));            return url;            //string errMsg;            //OutQrInfo(url,  out errMsg);        }        public static string OutQr4Card(string ModelCode,string Factory, string Sex, string RimStyle, string Price)        {            string url = string.Format("GlasessModel: Code:{0};Factory:{3};nSex:{2};Rim style:{1};Price:{4};", (ModelCode), (Factory), (Sex), RimStyle, Price);            return url;        }        public static string OutQr4Telephone(string Phone)        {            string url = string.Format("TEL:{0}",                (Phone));            return url;            //string errMsg;            //OutQrInfo(url,  out errMsg);        }        public static string OutQr4App(string AppID)        {            string url = string.Format("market://details?id={0}",                toUrl(AppID));            return url;            //string errMsg;            //OutQrInfo(url,  out errMsg);        }        public static string OutQr4Location(decimal longitude, decimal latitude, decimal accuracy)        {            string url = string.Format("GEO:{0},{1},{2}", longitude, latitude, accuracy);            return url;            //    string errMsg;            //    OutQrInfo(url,  out errMsg);            //}        }    }}

以上是这个生成二维码的方法类。

下面是生成其中一个类型的方法:

string filename = DateTime.Now.ToFileTime().ToString()+".jpg";            string err = string.Empty;            string s = Qr.OutQr4Card(txtModelCode.Text,txtFactory.Text,Sex,RimStyle,txtPrice.Text);            Qr.OutQrInfo(s, filename, out err);

 

另外还要引用ThoughtWorks.QRCode.dll文件。

转载于:https://www.cnblogs.com/chenhuiling1991/p/QRCode.html

你可能感兴趣的文章
第三个阶段事后诸葛亮
查看>>
java中的sql语句中如果有like怎么写
查看>>
【原创】驱动加载之StartService
查看>>
1751: [Usaco2005 qua]Lake Counting
查看>>
【BZOJ】4753: [Jsoi2016]最佳团体 01分数规划+树上背包
查看>>
iOS 获取设备信息之UIDevice的使用,Swift 基于 API
查看>>
IntelliJ cannot log in to GitHub上传github报错解决
查看>>
MySQL强制性操作
查看>>
对称密码-分组密码-AES
查看>>
腾讯地图点击地图创建锚点(且只创建一个)同事创建锚点提示
查看>>
洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication(最小割)
查看>>
洛谷P3396 哈希冲突(分块)
查看>>
优化Mysql数据库的8个方法
查看>>
Centos7下用户登录失败N次后锁定用户禁止登陆的方法
查看>>
开源许可协议简介
查看>>
程序性能优化的3个级别
查看>>
有的日期输入框,可直接调用javascripts
查看>>
手工创建表控制条目
查看>>
poj 2109 -- Power of Cryptography
查看>>
通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
查看>>