將多張圖片和文字合成一張圖片


/// <summary>
    /// 調用此函數后使此兩種圖片合並,類似相冊,有個
    /// 背景圖,中間貼自己的目標圖片
    /// </summary>
    /// <param name="sourceImg">粘貼的源圖片</param>
    /// <param name="destImg">粘貼的目標圖片</param>
    public static System.Drawing.Image CombinImage(string sourceImg, string destImg, string filename, string wxImg, string text_wx)
    {
        System.Drawing.Image imgBack = System.Drawing.Image.FromFile(sourceImg);     //相框圖片 
        //System.Drawing.Image img = System.Drawing.Image.FromFile(destImg);        //照片圖片
 
        //if (img == null)
        //{//二維碼合並
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale = 4;//可以調節二維碼的大小
            qrCodeEncoder.QRCodeVersion = 8;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            //System.Drawing.Image image = qrCodeEncoder.Encode("4408810820 深圳-廣州 小江");
            System.Drawing.Image img = qrCodeEncoder.Encode(destImg);        
       // }
 
 
        //從指定的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));//相片四周刷一層黑色邊框
 
 
        //從網絡獲取圖片轉為byte
        WebClient my = new WebClient();
        byte[] mybyte;
        mybyte = my.DownloadData(wxImg);
 
        //將byte流轉為圖片
        MemoryStream ms1 = new MemoryStream(mybyte);
        Image img2 = Image.FromStream(ms1);
 
 
        //g.DrawImage(img, 照片與相框的左邊距, 照片與相框的上邊距, 照片寬, 照片高);
        g.DrawImage(img, 185, 552, 131, 131);//寫入二維碼
        g.DrawImage(img2, 0, 0, 131, 131);//寫入圖標
        g.DrawString(text_wx, new Font(FontFamily.GenericMonospace, 14f), Brushes.White, new PointF(10, 20));//寫入文字
 
        GC.Collect();
 
 
        //加LOGO和微信名稱        
        //img = System.Drawing.Image.FromFile("http://www.baidu.com/img/baidu_jgylogo3.gif");        //照片圖片
        //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));//相片四周刷一層黑色邊框                
        //GC.Collect();        
        
        //輸出文件流
        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        imgBack.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
        BytToImg(ms.ToArray(), HttpContext.Current.Server.MapPath("/rcode_system/" + filename + ".png"));//保存成文件
        
        //輸出文件流
        //System.Web.HttpContext.Current.Response.ClearContent();
        //System.Web.HttpContext.Current.Response.ContentType = "image/png";
        //System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());        
        imgBack.Dispose();
        return imgBack;
    }

轉自:https://blog.csdn.net/prospertu/article/details/51393982


免責聲明!

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



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