加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ASP.NET2.0文件上传以及图片处理总结篇 [转]

发布时间:2020-12-15 04:40:14 所属栏目:百科 来源:网络整理
导读:p align="left" font size="2"1.最简单的单文件上传(没花头) 2.多文件上传 3.客户端检查上传文件类型(以上传图片为例) font size="2"4.服务器端检查上传文件类型(以上传图片为例) font size="2"5.服务器端检查上传文件类型(可以检测真正文件名) font size="2

<p align="left"><font size="2">1.最简单的单文件上传(没花头)
2.多文件上传
3.客户端检查上传文件类型(以上传图片为例)<font size="2">4.服务器端检查上传文件类型(以上传图片为例)
<font size="2">5.服务器端检查上传文件类型(可以检测真正文件名)<font size="2">6.上传文件文件名唯一性处理(时间戳+SessionID)
7.上传图片生成等比例缩略图
8.上传图片加水印(文字水印,图片水印,文字+图片水印)
9.


<p align="left"><font size="2">1.最简单的单文件上传(没花头)


<p align="left"><font size="2">效果图:<a href="http://tmsoft.lsxy.com/attachments/200708/0551756948.gif" target="_blank" rel="lightbox[plants]">

<img height="212" alt="" src="http://tmsoft.lsxy.com/attachments/saveimages/o_f1.gif" width="547">

<font size="2">说明:这是最基本的文件上传,在asp.net1.x中没有这个FileUpload控件,只有html的上传控件,那时候要把html控件转化为服务器控件,很不好用。其实所有文件上传的美丽效果都是从这个FileUpload控件衍生,第一个例子虽然简单却是根本。


<p align="left"><font size="2">后台代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


<p align="left"><font size="2">public partial class _Default : System.Web.UI.Page
{
??? protected void Page_Load(object sender,EventArgs e)
??? {


<font size="2">??? }
??? protected void bt_upload_Click(object sender,EventArgs e)
??? {
??????? try
??????? {
??????????? if (FileUpload1.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "请选择文件!";
??????????? }
??????????? else
??????????? {
??????????????? string filepath = FileUpload1.PostedFile.FileName;
??????????????? string filename = filepath.Substring(filepath.LastIndexOf("") + 1);
??????????????? string serverpath = Server.MapPath("images/") + filename;
??????????????? FileUpload1.PostedFile.SaveAs(serverpath);
??????????????? this.lb_info.Text = "上传成功!";
??????????? }
??????? }
??????? catch (Exception ex)
??????? {
??????????? this.lb_info.Text = "上传发生错误!原因是:" + ex.ToString();
??????? }
??? }
}
前台代码:
<table style="width: 343px">
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? 单文件上传</td>
??????????????? <td style="width: 100px">
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px">
???????????????????
??????????????????? </td>
??????????????? <td style="width: 100px">
??????????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px; height: 21px;">
??????????????????? <asp:Label ID="lb_info" runat="server" ForeColor="Red" Width="183px"></asp:Label></td>
??????????????? <td style="width: 100px; height: 21px">
??????????????? </td>
??????????? </tr>
??????? </table>?
<p align="left"><font size="2">2.多文件上传


<p align="left"><font size="2">效果图:

<img height="212" alt="" src="http://tmsoft.lsxy.com/attachments/saveimages/o_f2.gif" width="547">


<p align="left"><font size="2">后台代码:using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


<p align="left"><font size="2">public partial class _Default : System.Web.UI.Page
{
??? protected void Page_Load(object sender,EventArgs e)
??? {


<p align="left"><font size="2">??? }
??? protected void bt_upload_Click(object sender,EventArgs e)
??? {
???????
??????????? if ((FileUpload1.PostedFile.FileName == "" && FileUpload2.PostedFile.FileName == "")&&FileUpload3.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "请选择文件!";
??????????? }
??????????? else
??????????? {
??????????????? HttpFileCollection myfiles = Request.Files;
??????????????? for (int i = 0; i < myfiles.Count; i++)
??????????????? {
??????????????????? HttpPostedFile mypost = myfiles[i];
??????????????????? try
??????????????????? {
??????????????????????? if (mypost.ContentLength > 0)
??????????????????????? {
???????????????????????????? string filepath = mypost.FileName;
???????????????????????????? string filename = filepath.Substring(filepath.LastIndexOf("") + 1);
???????????????????????????? string serverpath = Server.MapPath("images/") + filename;
???????????????????????????? mypost.SaveAs(serverpath);
???????????????????????????? this.lb_info.Text = "上传成功!";
??????????????????????? }
??????????????????? }
??????????????????? catch (Exception error)
??????????????????? {
??????????????????????? this.lb_info.Text = "上传发生错误!原因:" + error.ToString();
??????????????????? }


<p align="left"><font size="2">??????????????? }
??????????????
??????????? }
??????? }
??????
??? }前台代码:?<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>


<p align="left"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<font color="#000080">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<p align="left"><html xmlns="<a href="http://www.w3.org/1999/xhtml"&gt;<font color="#000080">http://www.w3.org/1999/xhtml" >
<head runat="server">
??? 多文件上传 清清月儿http://blog.csdn.net/21aspnet/

???
??????? ???

效果图:

attachments/200708/0551756948.gif

1.最简单的单文件上传一样;前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

清清月儿 >?

???
???????

??? 说明:点击上传时先触发客户端事件

后台代码:using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;

? 其实方法4并不好,因为用户可以把XXX.txt伪装为XXX.jpg。

效果图:attachments/200708/4776900509.gif

后台代码:using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page { ??? //清清月儿 http://blog.csdn.net/21aspnet ??? protected void Page_Load(object sender,EventArgs e) ??? {

??? } ??? protected void bt_upload_Click(object sender,EventArgs e) ??? { ??????? try ??????? { ??????????? if (FileUpload1.PostedFile.FileName == "") ??????????? { ??????????????? this.lb_info.Text = "请选择文件!"; ??????????? } ??????????? else ??????????? { ??????????????? string filepath = FileUpload1.PostedFile.FileName; ??????????????? if (IsAllowedExtension(FileUpload1) == true)??????????????? { ??????????????????? string filename = filepath.Substring(filepath.LastIndexOf("") + 1); ??????????????????? string serverpath = Server.MapPath("images/") + filename; ??????????????????? FileUpload1.PostedFile.SaveAs(serverpath); ??????????????????? this.lb_info.Text = "上传成功!"; ??????????????? } ??????????????? else ??????????????? { ??????????????????? this.lb_info.Text = "请上传图片"; ??????????????? } ??????????? } ??????? } ??????? catch (Exception error) ??????? { ??????????? this.lb_info.Text = "上传发生错误!原因:" + error.ToString(); ??????? } ??? } ??? ??? { ??????? System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName,System.IO.FileMode.Open,System.IO.FileAccess.Read); ??????? System.IO.BinaryReader r = new System.IO.BinaryReader(fs); ??????? string fileclass = ""; ??????? byte buffer; ??????? try ??????? { ??????????? buffer = r.ReadByte(); ??????????? fileclass = buffer.ToString(); ??????????? buffer = r.ReadByte(); ??????????? fileclass += buffer.ToString();

??????? } ??????? catch ??????? { ?????????? ??????? } ??????? r.Close(); ??????? fs.Close(); ?????????????? { ??????????? return true; ??????? } ??????? else ??????? { ??????????? return false; ??????? }

??? }??

}

attachments/200708/0390508661.gif 说明:年月日时分秒+临时session+原文件名 如果大家怕还会重复可以加GUID后台代码:

try ??????? { ??????????? if (FileUpload1.PostedFile.FileName == "") ??????????? { ??????????????? this.lb_info.Text = "请选择文件!"; ??????????? } ??????????? else ??????????? { ??????????????? string filepath = FileUpload1.PostedFile.FileName; ??????????????? string filename = filepath.Substring(filepath.LastIndexOf("") + 1); ??????????????? ??????????????? FileUpload1.PostedFile.SaveAs(serverpath); ??????????????? this.lb_info.Text = "上传成功!"; ??????????? } ??????? } ??????? catch (Exception error) ??????? { ??????????? this.lb_info.Text = "上传发生错误!原因:" + error.ToString(); ??????? }

注:GUID的方法:Guid myGuid=Guid.NewGuid();

attachments/200708/7848454721.gif

缩略图代码: ImageThumbnail.cs using System; using System.IO; using System.Drawing; using System.Drawing.Imaging;

??? // 方法1,按大小 ??? public bool ReducedImage(int Width,int Height,string targetFilePath) ??? { ??????? try ??????? { ??????????? Image ReducedImage; ??????????? Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback); ??????????? ReducedImage = ResourceImage.GetThumbnailImage(Width,Height,callb,IntPtr.Zero); ??????????? ReducedImage.Save(@targetFilePath,ImageFormat.Jpeg); ??????????? ReducedImage.Dispose(); ??????????? return true; ??????? } ??????? catch (Exception e) ??????? { ??????????? ErrorMessage = e.Message; ??????????? return false; ??????? } ??? }

??? // 方法2,按百分比? 缩小60% Percent为0.6 targetFilePath为目标路径 ??? public bool ReducedImage(double Percent,string targetFilePath) ??? { ??????? try ??????? { ??????????? Image ReducedImage; ??????????? Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback); ??????????? ImageWidth = Convert.ToInt32(ResourceImage.Width * Percent); ??????????? ImageHeight = (ResourceImage.Height)*ImageWidth/ ResourceImage.Width;//等比例缩放 ??????????? ReducedImage = ResourceImage.GetThumbnailImage(ImageWidth,ImageHeight,ImageFormat.Jpeg); ??????????? ReducedImage.Dispose(); ??????????? return true; ??????? } ??????? catch (Exception e) ??????? { ??????????? ErrorMessage = e.Message; ??????????? return false; ??????? } ??? }

}

后台代码:using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page {

??? protected void Page_Load(object sender,EventArgs e) ??? { ??????? try ??????? { ??????????? if (FileUpload1.PostedFile.FileName == "") ??????????? { ??????????????? this.lb_info.Text = "请选择文件!"; ??????????? } ??????????? else ??????????? { ??????????????? string filepath = FileUpload1.PostedFile.FileName; ??????????????? string filename = filepath.Substring(filepath.LastIndexOf("") + 1); ??????????????? string serverpath1 = Server.MapPath("images/") + filename; ??????????????? string serverpath2 = Server.MapPath("images/") + System.DateTime.Now.ToString("yyy-MM-dd-hh-mm-ss") + Session.SessionID + filename; ??????????????? FileUpload1.PostedFile.SaveAs(serverpath1); ??????????????? ImageThumbnail img = new ImageThumbnail(filepath); ??????????????? img.ReducedImage(0.4,serverpath2);//0.4表示缩小40% ??????????????? this.lb_info.Text = "上传成功!"; ??????????? } ??????? } ??????? catch (Exception error) ??????? { ??????????? this.lb_info.Text = "上传发生错误!原因:" + error.ToString(); ??????? } ??? }

}8.上传图片加水印(文字水印,图片水印,文字+图片水印)

效果图: 原图attachments/200708/1934380631.jpg 水印attachments/200708/9568001524.jpg 给图片加水印以后(注意右上角+正下方)attachments/200708/2073927805.jpg

代码:using System; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; public class DrawImg { ?private string? WorkingDirectory = string.Empty ; //路径 ?private string? ImageName = string.Empty;?? //被处理的图片 ?private string? ImageWater = string.Empty;? //水印图片 ?private string? FontString = string.Empty;? //水印文字 ?

?enum DealType{NONE,WaterImage,WaterFont,DoubleDo}; //枚举命令

?private DealType dealtype; ?

?public DrawImg() ?{}

?public string PublicWorkingDirectory ?{ ??get ??{ ???return WorkingDirectory; ??} ??set ??{ ???WorkingDirectory = value; ??} ?}

?public string PublicImageName ?{ ??get ??{ ???return ImageName; ??} ??set ??{ ???ImageName = value; ??} ?}

?public string PublicImageWater ?{ ??get ??{ ???return ImageWater; ??} ??set? //设置了水印图片的话说明是要水印图片效果的 ??{ ???dealtype = DealType.WaterImage; ???ImageWater = value; ??} ?}

?public string PublicFontString ?{ ??get ??{ ???return FontString; ??} ??set //设置了水印文字的话说明是要水印文字效果的 ??{ ???dealtype = DealType.WaterFont; ???FontString = value; ??} ?}

?public void DealImage() ?{ ??IsDouble();

??switch( dealtype ) ??{ ???case DealType.WaterFont: WriteFont(); break; ???case DealType.WaterImage: WriteImg(); break; ???case DealType.DoubleDo: WriteFontAndImg(); break; ??}

?}

?private void IsDouble() ?{ ??if(ImageWater+""!="" && FontString+""!="") ??{ ??????????? dealtype = DealType.DoubleDo; ??} ?}

?private void WriteFont() ?{ ??//set a working directory ??//string WorkingDirectory = @"C:Watermark_srcWaterPic";

??//define a string of text to use as the Copyright message ??//string Copyright = "Copyright ?2002 - AP Photo/David Zalubowski";

??//create a image object containing the photograph to watermark ??Image imgPhoto = Image.FromFile(WorkingDirectory + ImageName); ??int phWidth = imgPhoto.Width; ??int phHeight = imgPhoto.Height;

??//create a Bitmap the Size of the original photograph ??Bitmap bmPhoto = new Bitmap(phWidth,phHeight,PixelFormat.Format24bppRgb);

??bmPhoto.SetResolution(imgPhoto.HorizontalResolution,imgPhoto.VerticalResolution);

??//load the Bitmap into a Graphics object ??Graphics grPhoto = Graphics.FromImage(bmPhoto);

??//------------------------------------------------------------ ??//Step #1 - Insert Copyright message ??//------------------------------------------------------------

??//Set the rendering quality for this Graphics object ??grPhoto.SmoothingMode = SmoothingMode.AntiAlias;

??//Draws the photo Image object at original size to the graphics object. ??grPhoto.DrawImage( ???imgPhoto,?????????????????????????????? // Photo Image object ???new Rectangle(0,phWidth,phHeight),// Rectangle structure ???0,????????????????????????????????????? // x-coordinate of the portion of the source image to draw. ???0,????????????????????????????????????? // y-coordinate of the portion of the source image to draw. ???phWidth,??????????????????????????????? // Width of the portion of the source image to draw. ???phHeight,?????????????????????????????? // Height of the portion of the source image to draw. ???GraphicsUnit.Pixel);??????????????????? // Units of measure

??//------------------------------------------------------- ??//to maximize the size of the Copyright message we will ??//test multiple Font sizes to determine the largest posible ??//font we can use for the width of the Photograph ??//define an array of point sizes you would like to consider as possiblities ??//------------------------------------------------------- ??int[] sizes = new int[]{16,14,12,10,8,6,4};

??Font crFont = null; ??SizeF crSize = new SizeF();

??//Loop through the defined sizes checking the length of the Copyright string ??//If its length in pixles is less then the image width choose this Font size. ??for (int i=0 ;i<7; i++) ??{ ???//set a Font object to Arial (i)pt,Bold ???//crFont = new Font("arial",sizes[i],FontStyle.Bold);

???crFont = new Font("arial",FontStyle.Bold);

???//Measure the Copyright string in this Font ???crSize = grPhoto.MeasureString(FontString,crFont);

???if((ushort)crSize.Width < (ushort)phWidth) ????break; ??}

??//Since all photographs will have varying heights,determine a ??//position 5% from the bottom of the image ??int yPixlesFromBottom = (int)(phHeight *.05);

??//Now that we have a point size use the Copyrights string height ??//to determine a y-coordinate to draw the string of the photograph ??float yPosFromBottom = ((phHeight - yPixlesFromBottom)-(crSize.Height/2));

??//Determine its x-coordinate by calculating the center of the width of the image ??float xCenterOfImg = (phWidth/2);

??//Define the text layout by setting the text alignment to centered ??StringFormat StrFormat = new StringFormat(); ??StrFormat.Alignment = StringAlignment.Center;

??//define a Brush which is semi trasparent black (Alpha set to 153) ??SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(153,0));

??//Draw the Copyright string ??grPhoto.DrawString(FontString,???????????????? //string of text ???crFont,?????????????????????????????????? //font ???semiTransBrush2,?????????????????????????? //Brush ???new PointF(xCenterOfImg+1,yPosFromBottom+1),? //Position ???StrFormat);

??//define a Brush which is semi trasparent white (Alpha set to 153) ??SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(153,255,255));

??//Draw the Copyright string a second time to create a shadow effect ??//Make sure to move this text 1 pixel to the right and down 1 pixel ??grPhoto.DrawString(FontString,?????????????????????????????????? //font ???semiTransBrush,?????????????????????????? //Brush ???new PointF(xCenterOfImg,yPosFromBottom),? //Position ???StrFormat);??? ?? ??imgPhoto = bmPhoto; ??grPhoto.Dispose();

??//save new image to file system. ??imgPhoto.Save(WorkingDirectory + ImageName + "_finally.jpg",ImageFormat.Jpeg); ??imgPhoto.Dispose(); ?? ??//Text alignment ?}

?private void WriteImg() ?{ ??//set a working directory ??//string WorkingDirectory = @"C:Watermark_srcWaterPic";

??//create a image object containing the photograph to watermark ??Image imgPhoto = Image.FromFile(WorkingDirectory + ImageName); ??int phWidth = imgPhoto.Width; ??int phHeight = imgPhoto.Height;

??//create a Bitmap the Size of the original photograph ??Bitmap bmPhoto = new Bitmap(phWidth,imgPhoto.VerticalResolution);

??//load the Bitmap into a Graphics object ??Graphics grPhoto = Graphics.FromImage(bmPhoto);

??//create a image object containing the watermark ??Image imgWatermark = new Bitmap(WorkingDirectory + ImageWater); ??int wmWidth = imgWatermark.Width; ??int wmHeight = imgWatermark.Height;

??//Set the rendering quality for this Graphics object ??grPhoto.SmoothingMode = SmoothingMode.AntiAlias;

??//Draws the photo Image object at original size to the graphics object. ??grPhoto.DrawImage( ???imgPhoto,?????????????????????????????? // Height of the portion of the source image to draw. ???GraphicsUnit.Pixel);??????????????????? // Units of measure

??//------------------------------------------------------------ ??//Step #2 - Insert Watermark image ??//------------------------------------------------------------

??//Create a Bitmap based on the previously modified photograph Bitmap ??Bitmap bmWatermark = new Bitmap(bmPhoto); ??bmWatermark.SetResolution(imgPhoto.HorizontalResolution,imgPhoto.VerticalResolution); ??//Load this Bitmap into a new Graphic Object ??Graphics grWatermark = Graphics.FromImage(bmWatermark);

??//To achieve a transulcent watermark we will apply (2) color ??//manipulations by defineing a ImageAttributes object and ??//seting (2) of its properties. ??ImageAttributes imageAttributes = new ImageAttributes();

??//The first step in manipulating the watermark image is to replace ??//the background color with one that is trasparent (Alpha=0,R=0,G=0,B=0) ??//to do this we will use a Colormap and use this to define a RemapTable ??ColorMap colorMap = new ColorMap();

??//My watermark was defined with a background of 100% Green this will ??//be the color we search for and replace with transparency ??colorMap.OldColor = Color.FromArgb(255,0); ??colorMap.NewColor = Color.FromArgb(0,0);

??ColorMap[] remapTable = {colorMap};

??imageAttributes.SetRemapTable(remapTable,ColorAdjustType.Bitmap);

??//The second color manipulation is used to change the opacity of the ??//watermark.? This is done by applying a 5x5 matrix that contains the ??//coordinates for the RGBA space.? By setting the 3rd row and 3rd column ??//to 0.3f we achive a level of opacity ??float[][] colorMatrixElements = { ???????????new float[] {1.0f,? 0.0f,0.0f},?????? ???????????new float[] {0.0f,? 1.0f,??????? ???????????new float[] {0.0f,? 0.3f,1.0f}}; ??ColorMatrix wmColorMatrix = new ColorMatrix(colorMatrixElements);

??imageAttributes.SetColorMatrix(wmColorMatrix,ColorMatrixFlag.Default, ???ColorAdjustType.Bitmap);

??//For this example we will place the watermark in the upper right ??//hand corner of the photograph. offset down 10 pixels and to the ??//left 10 pixles

??int xPosOfWm = ((phWidth - wmWidth)-10); ??int yPosOfWm = 10;

??grWatermark.DrawImage(imgWatermark, ???new Rectangle(xPosOfWm,yPosOfWm,wmWidth,wmHeight),? //Set the detination Position ???0,????????????????? // x-coordinate of the portion of the source image to draw. ???0,????????????????? // y-coordinate of the portion of the source image to draw. ???wmWidth,??????????? // Watermark Width ???wmHeight,????? // Watermark Height ???GraphicsUnit.Pixel,// Unit of measurment ???imageAttributes);?? //ImageAttributes Object

??//Replace the original photgraphs bitmap with the new Bitmap ??imgPhoto = bmWatermark; ??grPhoto.Dispose(); ??grWatermark.Dispose();

??//save new image to file system. ??imgPhoto.Save(WorkingDirectory + ImageName +"_finally.jpg",ImageFormat.Jpeg); ??imgPhoto.Dispose(); ??imgWatermark.Dispose();

?}

?private void WriteFontAndImg() ?{?? ?? ??//create a image object containing the photograph to watermark ??Image imgPhoto = Image.FromFile(WorkingDirectory + ImageName); ??int phWidth = imgPhoto.Width; ??int phHeight = imgPhoto.Height;

??//create a Bitmap the Size of the original photograph ??Bitmap bmPhoto = new Bitmap(phWidth,imgPhoto.VerticalResolution);

??//load the Bitmap into a Graphics object ??Graphics grPhoto = Graphics.FromImage(bmPhoto);

??//create a image object containing the watermark ??Image imgWatermark = new Bitmap(WorkingDirectory + ImageWater); ??int wmWidth = imgWatermark.Width; ??int wmHeight = imgWatermark.Height;

??//------------------------------------------------------------ ??//Step #1 - Insert Copyright message ??//------------------------------------------------------------

??//Set the rendering quality for this Graphics object ??grPhoto.SmoothingMode = SmoothingMode.AntiAlias;

??//Draws the photo Image object at original size to the graphics object. ??grPhoto.DrawImage( ???imgPhoto,Bold ???crFont = new Font("arial",FontStyle.Bold); ???//Measure the Copyright string in this Font ???crSize = grPhoto.MeasureString(FontString,? //Position ???StrFormat);?????????????????????????????? //Text alignment

??//------------------------------------------------------------ ??//Step #2 - Insert Watermark image ??//------------------------------------------------------------

??//Create a Bitmap based on the previously modified photograph Bitmap ??Bitmap bmWatermark = new Bitmap(bmPhoto); ??bmWatermark.SetResolution(imgPhoto.HorizontalResolution,ImageFormat.Jpeg); ??imgPhoto.Dispose(); ??imgWatermark.Dispose();

??????? ?} }

?//水印图片加水印文字 //???ReDrawImg img = new ReDrawImg(); //???img .PublicWorkingDirectory = @"C:Watermark_srcWaterPic"; //???img .PublicImageName = "watermark_photo.jpg"; //???img .PublicImageWater = "watermark.bmp"; //???img .PublicFontString = "清清月儿"; //???img .DealImage();? ?? ???//水印文字 ???ReDrawImg img = new ReDrawImg(); ???img .PublicWorkingDirectory = @"C:Watermark_srcWaterPic"; ???img .PublicImageName = "watermark_photo.jpg";??? ???img .PublicFontString = @"清清月儿"; ???img .DealImage(); ?

???//水印图片 //???ReDrawImg img = new ReDrawImg(); //???img .PublicWorkingDirectory = @"C:Watermark_srcWaterPic"; //???img .PublicImageName = "watermark_photo.jpg"; //???img .PublicImageWater = "watermark.bmp";??? //???img .DealImage();? ?? ?后台代码: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page {

??? protected void Page_Load(object sender,EventArgs e) ??? { ??????? try ??????? { ??????????? if (FileUpload1.PostedFile.FileName == "") ??????????? { ??????????????? this.lb_info.Text = "请选择文件!"; ??????????? } ??????????? else ??????????? { ??????????????? string filepath = FileUpload1.PostedFile.FileName; ??????????????? string filename = filepath.Substring(filepath.LastIndexOf("") + 1); ??????????????? string serverpath1 = Server.MapPath("images/") + filename; ??????????????? //string serverpath2 = Server.MapPath("images/") + System.DateTime.Now.ToString("yyy-MM-dd-hh-mm-ss") + Session.SessionID + filename; ??????????????? FileUpload1.PostedFile.SaveAs(serverpath1); ??????????????? //ImageThumbnail img = new ImageThumbnail(filepath); ??????????????? //img.ReducedImage(0.4,serverpath2); ??????????????? DrawImg img = new DrawImg(); ??????????????? img.PublicWorkingDirectory = Server.MapPath("images/"); ??????????????? img.PublicImageName = filename; ??????????????? img.PublicFontString = "http://blog.csdn.net/21aspnet"; ??????????????? img.PublicImageWater = "yyy.jpg"; ??????????????? img.DealImage(); ??????????????? this.lb_info.Text = "上传成功!"; ??????????? } ??????? } ??????? catch (Exception error) ??????? { ??????????? this.lb_info.Text = "上传发生错误!原因:" + error.ToString(); ??????? } ??? }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!