您的位置:首页 > 其它

(12)改变图片的大小生成缩略图

2014-03-16 16:32 357 查看
问题

你允许用户上传一个图片,但是传统的来说,这个图片一般是从一个camera输出的,这个图片太大。所以你想展现一个简单的图片或者缩略图。在你的网站允许用户在他看到完整图片之前先预览缩略图(译者:这是一个很好的用户体验)。

解决方案

使用以下几个类去更新现有的文件上传功能去调整图片:FileStream, Image, Bitmap,和Graphics 类去指定宽度和高度。

讨论

在下面的例子,以前创建的FileUpload类将得到更新和重组。创建一个新的功能,称为ResizeImage执行调整图片大小。调整大小后的图像将被保存在以前的文件夹的子文件夹中,名为(thumbnail)缩略图。 DeleteFile函数也被更新,同时删除缩略图和原始图像,并创建一个新的函数,并调用了两次删除功能 为了避免重复代码。下面是FileUpload类的代码:

译者:下边标红的代码是我加上去的。这样我们可以把图片和缩略图存到我们项目的文件夹下。否则他会存到:C:Program FilesCommon FilesMicrosoft SharedDevServer10.0目录下。

双击代码全选

上边的例子做了很多事,特别是在ResizeImage函数。

首先,如果缩略图​​目录不存在,它将被创建。接下来,一个新的FileStream会根据缩略图存放的完整路径被创建用于编辑。 原上传的图像根据uploaded的InputStream被转换为Image类的对象。一个新的位图会被根据图图像的宽度和高度创建。接下来用这个位图去创建一个新的Graphics对象。Graphics对象,NewImage,用于设置和定义质量,表面光滑,插补模式。如果没有这些设置,缩略图会不会好看非常像素化和调整笨拙。

一旦都设置好了,一个新的矩形被创建并且原始图像被画到Graphics中。这是执行实际的调整大小。最后保存位图和所有创建的对象的处置,以释放资源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: