ASP.NET 是一种基于微软.NET Framework的服务器端编程模型,用于构建动态网站、Web应用程序和Web服务。在这个实例中,我们将探讨如何在ASP.NET中实现图片上传并添加水印的功能。这个功能常见于许多网站,例如社交媒体平台或者图像分享网站,用于保护图片版权或展示品牌标识。 我们需要创建一个ASP.NET Web应用程序项目。在Visual Studio中,选择“ASP.NET Web应用程序”模板,然后选择“空”模板,确保包含“ASP.NET Web Forms”选项。 接下来,我们添加一个上传页面,例如"UploadImage.aspx"。在该页面上,我们需要一个文件上传控件(`<asp:FileUpload>`)让用户选择要上传的图片,以及一个按钮触发上传操作。HTML代码可能如下: ```html <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadImage.aspx.cs" Inherits="YourNamespace.UploadImage" %> <!DOCTYPE html> <html> <head> <title>图片上传加水印</title> </head> <body> <form runat="server"> <div> <asp:FileUpload ID="FileUploadControl" runat="server" /> <asp:Button ID="UploadButton" runat="server" Text="上传" OnClick="UploadButton_Click" /> </div> </form> </body> </html> ``` 然后,在对应的后台代码文件"UploadImage.aspx.cs"中,我们需要处理文件上传和添加水印的逻辑。验证文件类型是否为图片,并确保大小在允许范围内。然后,读取上传的图片,创建一个新的带有水印的图像,并将其保存到服务器。 ```csharp using System.Drawing; using System.Drawing.Imaging; using System.IO; protected void UploadButton_Click(object sender, EventArgs e) { if (FileUploadControl.HasFile && IsValidImage(FileUploadControl.FileName)) { string uploadPath = Server.MapPath("~/uploads/"); string filePath = Path.Combine(uploadPath, FileUploadControl.FileName); FileUploadControl.SaveAs(filePath); // 添加水印 AddWatermark(filePath, uploadPath + "watermarked_" + FileUploadControl.FileName); } else { Response.Write("请选择一个有效的图片文件进行上传。"); } } private bool IsValidImage(string fileName) { string[] allowedExtensions = { ".jpg", ".jpeg", ".png", ".gif" }; return allowedExtensions.Contains(Path.GetExtension(fileName).ToLower()); } private void AddWatermark(string sourceFilePath, string destFilePath) { using (var sourceImage = Image.FromFile(sourceFilePath)) { using (var destImage = new Bitmap(sourceImage)) { using (var graphics = Graphics.FromImage(destImage)) { // 创建水印文本 var text = "您的品牌名称"; var font = new Font("Arial", 24, FontStyle.Bold); var brush = new SolidBrush(Color.Gray); var rect = new RectangleF(0, 0, destImage.Width, destImage.Height); var angle = -45f; // 水印角度 // 计算文本在图像上的位置 var bounds = new RectangleF( rect.Right - MeasureString(graphics, text, font).Width - 10, rect.Bottom - MeasureString(graphics, text, font).Height - 10, MeasureString(graphics, text, font).Width, MeasureString(graphics, text, font).Height); graphics.TranslateTransform(bounds.X, bounds.Y); graphics.RotateTransform(angle); graphics.DrawString(text, font, brush, Point.Empty); // 保存带有水印的图像 destImage.Save(destFilePath, ImageFormat.Jpeg); } } } } private SizeF MeasureString(Graphics graphics, string text, Font font) { return graphics.MeasureString(text, font); } ``` 此示例中,我们在图片右下角添加了一个倾斜45度的品牌名称作为水印,字体为Arial,大小24,颜色灰色。您可以根据需要调整水印的位置、字体、颜色和角度。 为了测试这个功能,我们可以创建一个名为"pictest"的目录来存储上传的图片,将该目录设置为虚拟目录,然后运行Web应用程序,尝试上传图片。上传成功后,图片会被保存到服务器,并且带有水印的新文件会被命名为"watermarked_原始文件名"。 以上就是在ASP.NET中实现图片上传并添加水印的详细步骤。这个功能结合了文件上传、图像处理和服务器端编程,对于初学者来说是很好的练习项目。通过理解这些代码,你可以扩展这个功能,例如添加更复杂的水印,如图像水印,或者限制上传文件的数量和大小。
































- 1

- 秋冬与春夏2014-07-01不是我需要的
- iop01232012-11-01网上有很多了。再次拿来供新手学习。
- husttc2012-09-14非常好用,稍微改一下就可以用于项目中,哈,爽啊!

- 粉丝: 41
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 海康网络监控方案(可编辑修改word版).docx
- 物联网系统课程设计.doc
- 基于51单片机的超声波测距仪之倒车雷达作品设计毕业论文.doc
- 知之为知之不知为不知MicrosoftPowerPoint演示文稿.ppt
- 系统安全评价.pptx
- litemall-移动应用开发资源
- 基于sas软件以北大光华管理学院教学评估为例.pptx
- 中远集团电子商务发展战略.pptx
- 51单片机-单片机开发资源
- 企业信息化的规划与实施.doc
- 网络的安全教育主题班会国旗下讲话发言建议书.docx
- 广州市财政局计算机网络设备采购工程技术规范书.doc
- 如何撰写有吸引力的网络推广文案.docx
- 算法初步程序框图与算法的基本逻辑结构.pptx
- 物联网产业发展规划纲要.docx
- 微型计算机控制技术试卷.doc


