The Watermark function code is shown below
Copy Code code as follows:
<summary>
Image modification class, mainly used to protect the copyright of the picture, the copyright belongs to the original author all
</summary>
public class Picmark
{
#region "Member Fields"
private string modifyimagepath = null;
private string drawedimagepath = null;
private int rightspace;
private int bottoamspace;
private int lucencypercent = 70;
private string outpath = null;
#endregion
Public Picmark ()
{
}
#region "Propertys"
<summary>
Gets or sets the image path to modify
</summary>
public string Modifyimagepath
{
get {return this.modifyimagepath;}
set {This.modifyimagepath = value;}
}
<summary>
Gets or sets the picture path in the drawing (watermark picture)
</summary>
public string Drawedimagepath
{
get {return this.drawedimagepath;}
set {This.drawedimagepath = value;}
}
<summary>
Gets or sets the right margin of the watermark in the modified picture
</summary>
public int Rightspace
{
get {return this.rightspace;}
set {this.rightspace = value;}
}
Gets or sets the height of the watermark at the bottom of the Modify picture
public int Bottoamspace
{
get {return this.bottoamspace;}
set {this.bottoamspace = value;}
}
<summary>
Gets or sets the transparency of the watermark to be drawn, noting the percentage of the original picture transparency
</summary>
public int Lucencypercent
{
get {return this.lucencypercent;}
Set
{
if (value >= 0 && value <= 100)
This.lucencypercent = value;
}
}
<summary>
Gets or sets the path to output the image
</summary>
public string Outpath
{
get {return this.outpath;}
set {This.outpath = value;}
}
#endregion
#region "Methods"
<summary>
Start Drawing watermarks
</summary>
public void DrawImage ()
{
Image modifyimage = null;
Image drawedimage = null;
Graphics g = null;
Try
{
Create a drawing object
Modifyimage = Image.FromFile (this. Modifyimagepath);
Drawedimage = Image.FromFile (this. Drawedimagepath);
g = Graphics.fromimage (modifyimage);
Get graph coordinates to draw
int x = Modifyimage.width-this.rightspace;
int y = modifyimage.height-this. Bottoamspace;
Set the color matrix
Float[][] Matrixitems ={
New float[] {1, 0, 0, 0, 0},
New float[] {0, 1, 0, 0, 0},
New float[] {0, 0, 1, 0, 0},
New float[] {0, 0, 0, (float) this. lucencypercent/100f, 0},
New float[] {0, 0, 0, 0, 1}};
ColorMatrix ColorMatrix = new ColorMatrix (matrixitems);
ImageAttributes imgattr = new ImageAttributes ();
Imgattr.setcolormatrix (ColorMatrix, Colormatrixflag.default, Coloradjusttype.bitmap);
Draw a shadow Image
G.drawimage (
Drawedimage,
New Rectangle (x, Y, Drawedimage.width, drawedimage.height),
0, 0, drawedimage.width, Drawedimage.height,
GraphicsUnit.Pixel, imgattr);
Save File
String[] Allowimagetype = {". jpg", ". gif", ". png", ". bmp", ". Tiff", ". Wmf", ". ico"};
FileInfo file = new FileInfo (this. Modifyimagepath);
ImageFormat imagetype = imageformat.gif;
Switch (file. Extension.tolower ())
{
Case ". jpg":
ImageType = Imageformat.jpeg;
Break
Case ". gif":
ImageType = Imageformat.gif;
Break
Case ". png":
ImageType = Imageformat.png;
Break
Case ". bmp":
ImageType = imageformat.bmp;
Break
Case ". tif":
ImageType = Imageformat.tiff;
Break
Case ". Wmf":
ImageType = imageformat.wmf;
Break
Case ". ico":
ImageType = Imageformat.icon;
Break
Default
Break
}
MemoryStream ms = new MemoryStream ();
Modifyimage.save (MS, imagetype);
Byte[] Imgdata = Ms. ToArray ();
Modifyimage.dispose ();
Drawedimage.dispose ();
G.dispose ();
FileStream fs = null;
if (this. Outpath = = NULL | | This. Outpath = "")
{
File.delete (this. Modifyimagepath);
FS = new FileStream (this. Modifyimagepath, FileMode.Create, FileAccess.Write);
}
Else
{
FS = new FileStream (this. Outpath, FileMode.Create, FileAccess.Write);
}
if (fs!= null)
{
Fs. Write (imgdata, 0, imgdata.length);
Fs. Close ();
}
}
Finally
{
Try
{
Drawedimage.dispose ();
Modifyimage.dispose ();
G.dispose ();
}
catch {;}
}
}
#endregion
}
The foreground code looks like this
Copy Code code as follows:
<%@ Page language= "C #" autoeventwireup= true "codebehind=" WebForm1.aspx.cs "inherits=" demo. WebForm1 "%>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 transitional//en" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<title></title>
<body>
<form id= "Form1" runat= "Server" >
<div>
<asp:fileupload id= "FileUpload1" runat= "Server"/>
<br/>
<asp:button id= "Button1" runat= "Server" onclick= "Button1_Click" text= "button"/>
</div>
</form>
</body>
The code for the CS class is shown below
Copy Code code as follows:
protected void Button1_Click (object sender, EventArgs e)
{
string extension = Path.getextension (this. Fileupload1.filename). ToUpper ();
String fileName = Guid.NewGuid (). ToString ();
String savepath = Server.MapPath (".. /upfile/"+ filename+ extension);
if (! Directory.Exists (Path.getdirectoryname (Savepath))
{
Directory.CreateDirectory (Path.getdirectoryname (Savepath));
}
This. Fileupload1.saveas (Savepath);
Instantiating classes
Picmark wm = new Picmark ();
Wm. Drawedimagepath = Server.MapPath ("/upfile/" + "backlogo.gif");
Wm. Modifyimagepath = Savepath;
Wm. Rightspace = 145;
Wm. Bottoamspace = 17;
Wm. Lucencypercent = 50;
Wm. Outpath = Server.MapPath ("/upfile/" + filename.replace ("-", ""). ToUpper () + extension);
Wm. DrawImage ();
filename = "_new_" + filename;
String spath = Server.MapPath (".. /upfile/"+ fileName + extension);
This. Fileupload1.saveas (spath);
Save the image after the watermark, delete the original picture
if (file.exists (Savepath))
{
File.delete (Savepath);
File.delete (Wm. Outpath);
}