c# 使用ThoughtWorks.QRCode.dll生成二維碼圖片
阿新 • • 發佈:2019-01-29
新增引用
建立二維碼:
建立二維碼主要用到下面這兩句程式碼:
Bitmap bt;
string enCodeString = nr;//需要生成的字串
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();//引用dll自帶類
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);//呼叫Encode方法生成一個Bitmap物件,可以選擇編碼格式
下面是吧生成的二維碼以圖片儲存本地:
private void create_two(string nr)
{
Bitmap bt;
string enCodeString = nr;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
string path = @"D:\web\images_00_weixin\images-wx\";//儲存地址
string filename = "Codec" + DateTime.Now.ToString();//圖片名稱
//除去特殊字元
filename = filename.Replace(" " , "");
filename = filename.Replace(":", "");
filename = filename.Replace("-", "");
filename = filename.Replace(".", "");
bt.Save(path + filename + ".jpg");//儲存jpg格式圖片
}
如果不需要儲存本地,可動態生成,輸出圖片的二進位制流:
Bitmap bt = new Bitmap(280, 280);
try
{
string enCodeString = nr;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
//建立記憶體流用於輸出圖片
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
//圖片格式制定為png
bt.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
//清除緩衝區流中的所有輸出
Response.ClearContent();
//輸出流的HTTP MIME型別設定為"image/Png"
Response.ContentType = "image/Png";
//輸出圖片的二進位制流
Response.BinaryWrite(ms.ToArray());
}
}
finally
{
//釋放Bitmap物件
bt.Dispose();
}