1. 程式人生 > >c# 使用ThoughtWorks.QRCode.dll生成二維碼圖片

c# 使用ThoughtWorks.QRCode.dll生成二維碼圖片

新增引用

建立二維碼:

建立二維碼主要用到下面這兩句程式碼:

 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(); }