c# 使用ThoughtWorks.QRCode.dll生成二维码图片

添加引用

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

猜你喜欢

转载自blog.csdn.net/lwpoor123/article/details/78967739