Asp.Net 合並圖片(二維碼和其他圖片合並)


需求:根據網址生成二維碼,然后再把二維碼生成到背景圖片上,然后顯示在網頁中

pic.ashx

<%@ WebHandler Language="C#" Class="pic" %>

using System;
using System.Web;
using ThoughtWorks.QRCode.Codec;
using System.IO;
using System.Drawing;
using System.Text;
using System.Drawing.Imaging;
public class GetHongbao : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        string iid = context.Request.QueryString["id"];
        string url = "http://www.ceshi.com/tg" + iid;
        string bg = context.Server.MapPath("/images/hb.png");
        Image imgNew = CombinImage(bg, url);

        MemoryStream ms = new MemoryStream();
        imgNew.Save(ms, ImageFormat.Png);
        imgNew.Dispose();

        context.Response.ClearContent();
        context.Response.ContentType = "image/png";
        context.Response.BinaryWrite(ms.ToArray());
        context.Response.End();
        
    }

    public Image CombinImage(string sourceImg,string url)
    {
        Image imgBack = Image.FromFile(sourceImg);     //相框圖片  

        //從指定的System.Drawing.Image創建新的System.Drawing.Graphics        
        Graphics g = Graphics.FromImage(imgBack);

        //g.DrawImage(imgBack, 0, 0, 148, 124);      // g.DrawImage(imgBack, 0, 0, 相框寬, 相框高); 
        //g.FillRectangle(System.Drawing.Brushes.Black, 16, 16, (int)112 + 2, ((int)73 + 2));//相片四周刷一層黑色邊框


        g.DrawImage(GetQcode(url), 415, 798, 670, 670);
        GC.Collect();
        return imgBack;
    }
    public Image GetQcode(string data)
    {
        //初始化二維碼生成工具
        QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二維碼編碼(Byte、AlphaNumeric、Numeric)
        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;//二維碼糾錯能力(L:7% M:15% Q:25% H:30%)
        qrCodeEncoder.QRCodeVersion = 0;//二維碼密集度0-40
        qrCodeEncoder.QRCodeScale = 20;//二維碼尺寸(Version為0時,1:30x30,每加1寬和高各加29

        return qrCodeEncoder.Encode(data, Encoding.Default);
    }
    public bool IsReusable {
        get {
            return false;
        }
    }

}

//需要使用到二維碼ThoughtWorks.QRCode.dll

html調用

<img src="pic.ashx?id=1" />


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM