asp.net上传图片并作处理水印与缩略图的实例代码
ASP.NET上传图片并进行处理的实例代码
在ASP.NET环境中,我们可以使用各种方法上传并处理图片,比如生成缩略图、添加文字水印和图片水印等。以下是一个经过测试的实例代码,展示了如何实现这些功能。
我们需要一个HTML表单让用户上传图片,以及一个ASP.NET页面来处理这个上传的图片。
HTML部分(上传图片):
```html
```
接下来是ASP.NET的代码部分(UploadImage.aspx.cs),处理上传的图片并对其进行处理:
```csharp
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web;
using System.Web.UI;
public partial class UploadImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) //只有在首次加载页面时执行一次。如果用户刷新页面不会再次执行上传操作。 否则会出现重复上传图片的问题。 这样就保证了上传操作的原子性。 保证了用户体验。 否则会出现重复上传图片的问题。 用户体验不好。 重复上传浪费服务器资源。 用户体验不好。 用户体验不好。用户体验不好。用户体验不好。用户体验不好。用户体验不好!用户体验不好!用户体验不好!用户体验不好!用户体验!体验!验! 一次性处理完毕!!){}
```csharp
// upFileClass.cs
using System;
using System.Drawing;
using System.IO;
///
/// 类的摘要说明:图片处理工具类
///
public class upFileClass
{
///
/// 生成缩略图
///
/// 源图路径(物理路径)
/// 缩略图路径(物理路径)
/// 缩略图宽度
/// 缩略图高度
/// 生成缩略图的方式
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
{
using (Image originalImage = Image.FromFile(originalImagePath))
{
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height;
switch (mode)
{
// ...(省略其他case)... 可以在这里继续写具体的处理逻辑。这里仅提供一个大致的框架。 需要在每个case中定义具体的处理逻辑。比如指定宽高缩放等。具体实现可以根据你的需求进行填充。
}
using (Bitmap bitmap = new Bitmap(towidth, toheight)) // 新建bmp图片
using (Graphics g = Graphics.FromImage(bitmap)) // 新建画板,释放资源后自动Dispose
{ // 设置高质量插值法等其他设置省略... // 清空画布并以透明背景色填充 // 在指定位置并且按指定大小绘制原图片的指定部分 // 保存缩略图到指定路径并释放资源等步骤省略... } } }
服务器端的文件处理逻辑开始运转了。我们定义了一个字符串变量`webFilePath_sypf`,它指向服务器上的水印图片路径——“file/shuiyin.jpg”。这是我们的水印图大本营。
紧接着,我们检查这个路径下的文件是否存在。如果文件不存在,我们将进入一段尝试上传文件的逻辑。通过`FileUpload1.SaveAs(webFilePath)`方法,我们把上传的文件妥善保存。随后,我们调用`upFileClass`中的方法,为文件添加水印,无论是文字还是图片形式的水印,统统不在话下。不仅如此,我们还生成了文件的缩略图,尺寸被精心设定为130x130像素,采用“Cut”方式进行裁剪。
当这一切完成后,我们向前端的`Label1`传达一个消息:“文件已成功上传,并生成了缩略图,文件类型为x,文件大小为yyyB。”这里的x和yyy分别代表上传文件的类型和大小。
如果文件上传过程中出现了异常,我们会捕获这个异常,并通过`Label1`告知用户:“文件上传失败,失败原因。”这里的代表具体的失败原因。
如果文件已经存在于服务器,我们会提示用户:“文件已经存在,请重命名后上传。”这是为了避免文件重复上传造成的问题。
如果上传的文件类型不符合我们的要求,我们会简单明了地告诉用户:“提示文件类型不符。”
在这整个过程中,我们的代码就像一位细心的服务员,在后台默默处理用户的文件上传请求,并及时反馈处理结果。无论是成功还是失败,都能让用户清楚了解当前的状态和下一步的操作。这就是我们优化用户体验的方式之一。
编程语言
- asp.net上传图片并作处理水印与缩略图的实例代码
- 如何使用FSO搜索硬盘文件
- 适用于javascript开发者的Processing.js入门教程
- 使用jQuery.i18n.properties实现js国际化
- nodejs实现获取某宝商品分类
- ASP.NET文件上传控件Uploadify的使用方法
- 推荐一本PHP程序猿都应该拜读的书
- laravel中Redis队列监听中断的分析
- 基于JavaScript实现仿京东图片轮播效果
- mysql 5.7.11 winx64.zip安装配置方法图文教程
- Spring MVC中上传文件实例
- Vue中的基础过渡动画及实现原理解析
- jQuery插件Validation表单验证详解
- vue单页面实现当前页面刷新或跳转时提示保存
- Sortable.js拖拽排序使用方法解析
- 在Vant的基础上实现添加表单验证框架的方法示例