.NET上传图片加文字和水印图片源码
复制下面代码,只需要在同级目录下建一个UPLOAD文件夹和一张LZ.JPG图片即可正常使用.
.aspx文件
<%@ Page language="c#" Codebehind="35cnnet.aspx.cs" AutoEventWireup="false" Inherits="uploadfiles.35cnnet" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>MikeCat_WaterMark</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <INPUT id="File1" style="Z-INDEX: 101; LEFT: 144px; WIDTH: 400px; POSITION: absolute; TOP: 88px; HEIGHT: 22px" type="file" size="47" name="File1" runat="server"> <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 136px" runat="server" Text="上传并加文字水印"></asp:Button> <asp:Button id="Button2" style="Z-INDEX: 103; LEFT: 352px; POSITION: absolute; TOP: 136px" runat="server" Text="上传并加图片水印"></asp:Button> <asp:RequiredFieldValidator id="RequiredFieldValidator1" style="Z-INDEX: 104; LEFT: 552px; POSITION: absolute; TOP: 88px" runat="server" ErrorMessage="*" ControlToValidate="File1"></asp:RequiredFieldValidator> <DIV style="Z-INDEX: 105; LEFT: 16px; WIDTH: 100%; POSITION: absolute; TOP: 168px; HEIGHT: 100px" ms_positioning="GridLayout"> <asp:Image id="Image1" style="Z-INDEX: 107; LEFT: 56px; POSITION: absolute; TOP: 16px" runat="server" ImageAlign="Middle"></asp:Image></DIV> <asp:Label id="Label1" style="Z-INDEX: 107; LEFT: 176px; POSITION: absolute; TOP: 40px" runat="server">百分百设计--上传图片并加入水印</asp:Label> </form> </body> </HTML> |
.cs文件
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; namespace uploadfiles { public class 35cnnet : System.Web.UI.Page { protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.HtmlControls.HtmlInputFile File1; protected System.Web.UI.WebControls.Image Image1; protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1; protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.WebControls.Button Button2; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!Page.IsPostBack) { Image1.ImageUrl="aa.gif"; } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Button2.Click += new System.EventHandler(this.Button2_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Button1_Click(object sender, System.EventArgs e) { if(File1.PostedFile.FileName.Trim()!="") { //上传文件 string extension = Path.GetExtension(File1.PostedFile.FileName).ToLower(); string fileName = DateTime.Now.ToString("yyyyMMddhhmmss"); string path = Server.MapPath(".") + "/upload/" + fileName + extension; File1.PostedFile.SaveAs(path); //加文字水印,注意,这里的代码和以下加图片水印的代码不能共存 System.Drawing.Image image = System.Drawing.Image.FromFile(path); Graphics g = Graphics.FromImage(image); g.DrawImage(image, 0, 0, image.Width, image.Height); Font f = new Font("Verdana",16); Brush b = new SolidBrush(Color.Blue); string addText = "百分百设计"; g.DrawString(addText, f, b, 10, 10); g.Dispose(); //保存加水印过后的图片,删除原始图片 string newPath = Server.MapPath(".") + "/upload/" + fileName + "_new" + extension; image.Save(newPath); image.Dispose(); if(File.Exists(path)) { File.Delete(path); } Image1.ImageUrl=newPath; // Response.Redirect(newPath); } } private void Button2_Click(object sender, System.EventArgs e) { //上传文件 string extension = Path.GetExtension(File1.PostedFile.FileName).ToUpper(); string fileName = DateTime.Now.ToString("yyyyMMddhhmmss"); string path = Server.MapPath(".") + "/upload/" + fileName + extension; File1.PostedFile.SaveAs(path); //加图片水印 System.Drawing.Image image = System.Drawing.Image.FromFile(path); System.Drawing.Image copyImage = System.Drawing.Image.FromFile( Server.MapPath(".") + "/lz.jpg"); Graphics g = Graphics.FromImage(image); g.DrawImage(copyImage, new Rectangle(image.Width-copyImage.Width, image.Height-copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel); g.Dispose(); //保存加水印过后的图片,删除原始图片 string newPath = Server.MapPath(".") + "/upload/" + fileName + "_new" + extension; image.Save(newPath); image.Dispose(); if(File.Exists(path)) { File.Delete(path); } Image1.ImageUrl=newPath; } } } |
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。