using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Gma.QrCodeNet.Encoding;
using Gma.QrCodeNet.Encoding.Windows.Render;
using ThoughtWorks.QRCode.Codec;
using System.IO;
namespace Utility
{
/// <summary>
/// 二维码
/// 150908-1533
/// atun
/// </summary>
public class ErWeiMa
{
#region 将二维码给图片
/// <summary>
/// 将二维码给图片
/// 150908-1557
/// atun
/// </summary>
/// <param name="str">二维码的内容</param>
/// <param name="Fiel_Path">图片路径:up/com_erweima/ 注:不加@</param>
/// <param name="com_id">公司ID,</param>
/// <returns>返回图片的路径</returns>
public static string creatQRCodeImage(string str, string File_Path, int com_id)
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置背景颜色
//qrCodeEncoder.QRCodeBackgroundColor = Color.FromArgb(255, 255, 0);
//设置前景色
//qrCodeEncoder.QRCodeForegroundColor = Color.GreenYellow;
//编码格式
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置每个二维码像素点的大小
qrCodeEncoder.QRCodeScale = 4;
//QR码版本
//QR码所允许规格系列为21×21模块(版本1)~177×177模块(版本40)
qrCodeEncoder.QRCodeVersion =8;
//纠错等级
//level L : 最大 7% 的错误能够被纠正; ·
//level M : 最大 15% 的错误能够被纠正; ·
//level Q : 最大 25% 的错误能够被纠正; ·
//level H : 最大 30% 的错误能够被纠正;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
//自定义的二维码数据
String data = str;
//Response.Write(data);
//画图
System.Drawing.Bitmap image = qrCodeEncoder.Encode(data);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);
//写图片
//return MStream.ToArray();
//Response.BinaryWrite(MStream.ToArray());
//文件路径
//当前项目路径
string img = string.Format(@"{0}/{1}.png", File_Path, com_id);
try
{
if (!File.Exists(File_Path))
{
string img_url = string.Format(@"../" + img);
FileStream fs = new FileStream(System.Web.HttpContext.Current.Server.MapPath(img_url), FileMode.CreateNew, FileAccess.ReadWrite);
BinaryWriter bw = new BinaryWriter(fs);
byte[] by = MStream.ToArray();
for (int i = 0; i < MStream.ToArray().Length; i++)
bw.Write(by[i]);
fs.Close();
}
}
catch (Exception ex)
{ }
return img;
}
#endregion
}
}
可以在这里下载DLL,DLL版本一定要对上,不然会出现索引超出界限
http://files.cnblogs.com/files/c546170667/QrCode.Net.zip