C# GDI+ 簡單實現圖片寫文字和圖片疊加(水印)(轉)

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Drawing;

namespace Web_PictureWaterMark
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.imgSource.ImageUrl = @"~/Image/Bear.bmp";
        }

        //圖片疊加
        protected void btn_WaterMark_Click(object sender, EventArgs e)
        {
            string path = Server.MapPath(@"image/Bear.bmp");
            System.Drawing.Image imgSrc = System.Drawing.Image.FromFile(path);
            System.Drawing.Image imgWarter = System.Drawing.Image.FromFile(Server.MapPath(@"Image/Water.bmp"));
            using (Graphics g = Graphics.FromImage(imgSrc))
            {
                g.DrawImage(imgWarter, new Rectangle(imgSrc.Width - imgWarter.Width,
                                                 imgSrc.Height - imgWarter.Height,
                                                 imgWarter.Width,
                                                 imgWarter.Height),
                        0, 0, imgWarter.Width, imgWarter.Height, GraphicsUnit.Pixel);
            }   

            string newpath = Server.MapPath(@"Image/WaterMark.bmp");
            imgSrc.Save(newpath, System.Drawing.Imaging.ImageFormat.Jpeg);
            this.image_Water.ImageUrl = @"~/Image/WaterMark.bmp";          

        }

        //圖片寫字
        protected void btn_FontMark_Click(object sender, EventArgs e)
        {
            string path = Server.MapPath(@"image/Bear.bmp");
            System.Drawing.Image imgSrc = System.Drawing.Image.FromFile(path);

            using (Graphics g = Graphics.FromImage(imgSrc))
            {
                g.DrawImage(imgSrc, 0, 0, imgSrc.Width, imgSrc.Height);
                using(Font f=new Font("宋體",20))
                {
                    using (Brush b = new SolidBrush(Color.Red))
                    {
                        string addText = "個人地盤我作主";
                        g.DrawString(addText, f, b, 100,20);
                    }
                }
            }
            string fontpath = Server.MapPath(@"image/FontMark.bmp");
            imgSrc.Save(fontpath, System.Drawing.Imaging.ImageFormat.Bmp);
            this.image_Font.ImageUrl = @"~/image/FontMark.bmp";          
         
        }
    }
}

————————————————————————————————————————————————————————————————————————————————————————————————————————html

圖片上傳後,能夠在上傳的圖片上面寫上本身站點的網址,或者把本身網址的水印圖片疊加到上傳的的圖片上來實現水印的效果。
利用C# GUI 實現起來簡直是太容易了,代碼以下:this

.頁面HTML代碼:spa

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web_PictureWaterMark._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET C#爲圖片加水印</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>    
        <asp:Image ID="imgSource" runat="server" ImageUrl="~/Image/Bear.bmp" />    
    </div>
    <div>
        <asp:Button ID="btn_WaterMark" runat="server" Text="爲圖片添加水印效果" 
            onclick="btn_WaterMark_Click" />
        <asp:Button ID="btn_FontMark" runat="server" Text="爲圖片添加文字效果" 
            onclick="btn_FontMark_Click" />
     </div>
     <div style="width:410px; float:left; margin:0px;">
         <asp:Image ID="image_Water" runat="server" />
    </div>
     <div style="width:410px; float:left; margin:0px;">
         <asp:Image ID="image_Font" runat="server" />
    </div>
    </form>
</body>
</html>
相關文章
相關標籤/搜索