aspnet2014-07-26 00:58:32 8160
介绍下在ASP.NET(C#)中利用ThoughtWorks.QRCode类库快速生成二维码。
1.在工程中引入ThoughtWorks.QRCode类库:
点击下载:http://www.pengyaou.com/QrCode/ThoughtWorks.QRCode.dll
2.代码:
[WebMethod]
public static string GetQrURL(string str)
{
string returnString = "";
try
{
Bitmap mBitmap = GetImg(str, 100);
string fileName = DateTime.Now.Year.ToString() DateTime.Now.Month.ToString() DateTime.Now.Day.ToString() DateTime.Now.Hour.ToString() DateTime.Now.Minute.ToString() DateTime.Now.Second.ToString();
string path = System.Web.HttpContext.Current.Server.MapPath("QrImg/" fileName ".png");
mBitmap.Save(path);
returnString = "QrImg/" fileName ".png";
}
catch
{
}
return returnString;
}
/// <summary>
/// 二维码
/// </summary>
/// <param name="code">需要生成二维码的图片</param>
/// <param name="size">图片的大小</param>
public static Bitmap GetImg(string code, int size)
{
QRCodeEncoder qrEntity = new QRCodeEncoder();
qrEntity.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码方式
qrEntity.QRCodeScale = 8;//每个小方格的宽度
qrEntity.QRCodeVersion = 5;//二维码版本号
qrEntity.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//纠错码等级
System.Drawing.Bitmap srcimage;
//动态调整二维码版本号,上限40,过长返回空白图片,编码后字符最大字节长度2953
while (true)
{
try
{
srcimage = qrEntity.Encode(code, System.Text.Encoding.UTF8);
break;
}
catch (IndexOutOfRangeException e)
{
if (qrEntity.QRCodeVersion < 40)
{
qrEntity.QRCodeVersion ;
}
else
{
srcimage = new Bitmap(100, 100);
break;
}
}
}
//为生成的二维码图像裁剪白边并调整为请求的高度
return srcimage;
}彭亚欧个人博客原创文章,转载请注明出处
文章关键词:C#生成二维码,ASP.NET二维码生成,二维码
文章固定链接:https://www.pengyaou.com/legendsz/server/aspnet/NjI=.html
下一篇 Jquery放大镜效果