二维码中间带图片

这个需要引用第三的二位码库 ThoughtWorks.QRCode.dll
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ThoughtWorks.QRCode.Codec;
using System.IO;
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string data = "url";     //二维码信息  
         WebClient webclient = new WebClient();
         byte[] imgdata1 = webclient.DownloadData("http://www.baidu.com/img/baidu_sylogo1.gif");//中间的图片
         Bitmap img1 = new Bitmap(new MemoryStream(imgdata1));
         QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;    //编码方法
        qrCodeEncoder.QRCodeScale = 7;     //大小
        qrCodeEncoder.QRCodeVersion = 18;    //版本
        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
        Bitmap image = qrCodeEncoder.Encode(data, Encoding.UTF8);
        Graphics g = Graphics.FromImage(image);
        g.DrawImage(img1, (image.Width - img1.Width) / 2, (image.Height - img1.Height) / 2);
        System.IO.MemoryStream MStream = new System.IO.MemoryStream();
        image.Save(MStream, System.Drawing.Imaging.ImageFormat.Gif);
        Response.ClearContent();
        Response.ContentType = "image/Gif";
        Response.BinaryWrite(MStream.ToArray());
    }
}

  

posted on 2014-06-14 16:03  王昭军  阅读(531)  评论(0编辑  收藏  举报