天使与恶魔 发表于 2010-9-5 20:26:22

如何在上传的图片上自动加上水影?

上面我们说到:如何管理好自己的网赚?就得要利用后台来管理。 对于新手来说后台随看简单,但是也很复杂,许多新手站长们还不知道怎么弄?所以今天我要讲的教程是:如何在上传的图片上自动加上水影? 这个问题也要利用后台来实现,所以呢?对于后台不熟悉的站长们,可以来学习一下。

下面是一段代码,提供后台没有“加水印这个功能的代码”有这个功能的朋友就不用加这个代码了。

a.aspx
<%@   Page   language= "c# "   Codebehind= "MikeCat_WaterMark.aspx.cs "   AutoEventWireup= "false "   Inherits= "MikeCat.MikeCat_WaterMark "   %>
<!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>


a.aspx.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   MikeCat
{
///   <summary>
///   MikeCat_WaterMark   的摘要说明。
///   *******************************
///   作者:迈克老猫
///   功能:上传图片加入水印
///   EMAIL:mikecat#mikecat.net
///   *******************************
///   </summary>
public   class   MikeCat_WaterMark   :   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= "mikepp.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   =   "站长网赚论坛http://www.php178.com ";
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( ". ")   +   "/mikepp.gif ");
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;
}
}
}

有这个功能的朋友,可以直接登入后台,进入'全局"→附件设置,里面包括“图片水印”→“防盗链设置”,下面是操作,我就简单点,直接用图片展示给大家看好了。



在“缩小图”中,只要不选择“不启用缩略图功能”就行,其它的都可以按照自己的要求选择,然后提交就可以了。

以上供新手的站长们学习,老手们也可以来看看,帮我提提建议,共同努力。

天使与恶魔 发表于 2010-9-6 16:36:32

以上教程供新手们参考,老手就不用参考了,
页: [1]
查看完整版本: 如何在上传的图片上自动加上水影?