ASP.NET中利用System.Drawing创建高清缩略图详解
需积分: 9 160 浏览量
更新于2024-09-19
收藏 41KB DOC 举报
在ASP.NET开发中,处理图像和创建缩略图是一项常见的任务。本文将介绍如何利用System.Drawing命名空间下的Image和Bitmap类来实现高清缩略图的生成,以及这两个类的区别。
首先,我们来看如何使用System.Drawing.Image类来获取图片的高度和宽度。例如,通过以下代码片段加载本地文件中的图像:
```csharp
System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath("example.gif"));
int width = img.Width;
int height = img.Height;
img.Dispose();
```
在这里,Image类支持BMP、JPEG、GIF和PNG等多种格式。尽管我们可以导入System.Drawing命名空间而不写全名,但为了避免与System.Web.UI.WebControls.Image控件产生命名冲突,推荐完整引用。
接下来,我们关注System.Drawing.Bitmap类,它是Image的一个子类,专门用于更底层的图像操作。例如,创建缩略图的过程可以这样进行:
```csharp
System.Drawing.Bitmap bmp = new Bitmap(Server.MapPath("example.jpg"));
int srcWidth = bmp.Width;
int srcHeight = bmp.Height;
bmp.Dispose();
System.Drawing.Image srcImg = System.Drawing.Image.FromFile(Server.MapPath("src.png"));
System.Drawing.Image thumbImg = srcImg.GetThumbnailImage(70, 70, null, new System.IntPtr());
thumbImg.Save(Server.MapPath("thumb.png"));
thumbImg.Dispose();
srcImg.Dispose();
```
GetThumbnailImage方法接收四个参数:第一个和第二个参数(如70, 70)指定了生成的缩略图的宽度和高度,第三个参数通常为回调函数,但在这个示例中并未使用,最后一个参数是一个IntPtr对象,用于回调通知。
System.Drawing.Image和System.Drawing.Bitmap的主要区别在于,Image是一个抽象基类,它包含了对各种常见图像格式的支持,并提供了一般性的图像操作。而Bitmap更为具体,专注于位图图像,提供了更多的底层控制,比如像素级别的操作。由于Bitmap是Image的子类,所以它可以处理BMP格式,但Image的灵活性使得它能够处理更多类型的图像。
在ASP.NET中,利用System.Drawing命名空间的Image和Bitmap类可以方便地处理图像和生成缩略图,开发者可以根据需要选择合适的方式,同时注意避免命名冲突,确保代码的可读性和健壮性。
104 浏览量
点击了解资源详情
220 浏览量
2020-10-19 上传
2008-07-02 上传
2020-10-24 上传
2010-05-30 上传
2010-06-12 上传
131 浏览量