詳しくはASP.NETはQRコードインスタンスを生成する(ThoughtWorks.QRCodeとQrCode.Netの2つの方法を採用する)
2403 ワード
最近、プロジェクトでQRコードを生成する問題が発生し、ネット上で最も多く使われているのはThoughtWorksであることが分かった.QRCodeとQrCode.Netの2つの方式.公式サイトを訪問して例を見て2つのDemoを書いたが、使用中に2つとも使いやすいことが分かった.QRCodeの機能はもっと多いですが、dllファイルは6兆、QrCodeです.Netは400 K以上しかないので、皆さんは自分のニーズに合わせて選びましょう.参考までにコードを添付します.
ThoughtWorks.QRCode:
QrCode.Net:
ThoughtWorks.QRCode:
private void CreateQrcode(string nr)
{
Bitmap bt;
string enCodeString = nr;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
string filename = DateTime.Now.ToString("yyyymmddhhmmss");
string path = Server.MapPath("~/image/") + filename + ".jpg";
Response.Write(path);
bt.Save(path);
this.Image1.ImageUrl = "~/image/" + filename + ".jpg";
}
QrCode.Net:
protected void Button1_Click(object sender, EventArgs e)
{
using (var ms = new MemoryStream())
{
string stringtest = " inghttp://www.baidu.com/mvc.test?&";
GetQRCode(stringtest, ms);
Response.ContentType = "image/Png";
Response.OutputStream.Write(ms.GetBuffer(), 0, (int)ms.Length);
Image img = Image.FromStream(ms);
string filename = DateTime.Now.ToString("yyyymmddhhmmss");
string path = Server.MapPath("~/image/") + filename + ".png";
img.Save(path);
Response.End();
}
}
///
///
///
///
///
///True if the encoding succeeded, false if the content is empty or too large to fit in a QR code
public static bool GetQRCode(string strContent, MemoryStream ms)
{
ErrorCorrectionLevel Ecl = ErrorCorrectionLevel.M; //
string Content = strContent;//
QuietZoneModules QuietZones = QuietZoneModules.Two; //
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;
}
return true;
}