APP下载

ASP.NET下自动生成规定大小等比例缩略图的方法

2013-07-27黄鸿锋罗云芳

电子测试 2013年16期
关键词:背景色预先矩形

黄鸿锋,罗云芳

(广西职业技术学院,广西南宁,530226)

1 实现的思路

1.1 Graphics类

Windows平台下的. Net Framework提供了GDI+(graphics device interface +)图形类库,该类库采用面向对象的分层模块化设计方法,给出一套简洁、实用的图形平台实现方案。在System.Drawing命名空间中,包含了创建、编辑图像的所有类[2],利用这些图像操作的类, 可以对图像进行处理。这里采用其中封装的DrawImage()方法实现缩略图的生成。

1.2 用到的方法

(1)Graphics.DrawImage()方法

Graphics类下的DrawImage()方法功能是在指定位置按指定大小绘制指定的Image。在实现上DrawImage()方法有很多重载,本文使用Graphics.DrawImage (Image, Int32, Int32,Int32, Int32)方法实现缩略图的具体生成。此方法有5个参数,其中Image代表要绘制的图像,第二个参数表示绘制图像左上角的X坐标,第三个参数表示绘制图像左上角的Y坐标。第四个参数表示绘制图像的宽度,第五个参数表示绘制图像的高度。

(2)Graphics.FromImage(Image)方法

Graphics类下的FromImage()方法功能是从指定的Image创建新的Graphics。其中参数Image表示创建新的Graphics的原始图像。

(3)Graphics.FillRectangle()方法

Graphics类下的FillRectangle()方法功能是填充由一对坐标,一个宽度和一个高度指定的矩形的内部区域。此方法有5个参数,第一个参数表示画刷的颜色(填充的背景色),第二个参数表示矩形左上角X坐标,第三个参数表示矩形左上角Y坐标,第四个参数表示要填充的矩形的宽度,第五个参数表示要填充的矩形有的高度。

(4)Graphics.Clear()方法

Graphics类下的Clear()方法功能是清除整个绘图画布,并使用指定的背景色填充画布。

1.3 实现的原理

(1)不管原始图像的大小,最终都要生成预先定义大小的缩略图。

(2)如果原始图像的宽度和高度比预先定义的大小都要小,如 16*16的图像生成160*120的图像,那么就相当于把16*16的图像画到160*120图像的中间,图像背景色为白色。

(3)如果原始图像至少有一边比预先定义好的大小要大,那么就先生成等比例缩放好的图像,然后再画到预先定义大小的图像上,如:400*200的图像生成160*120的图像,则先生成等比例的160*80的图像,然后再把该图像画到160*120图像的中间。

2 具体实现步骤和关键原码

2.1 实现的具体步骤

使用Graphics.DrawImage()方法自动绘制生成规定大小等比例缩略图的具体方法如下:

(1)把需要绘制缩略图的原始图像统一存放同一个目录中,然后遍历每一图像作为绘制缩略图的原始图像。

(2)根据原始图像生成一张位图。

(3)利用创建的位图创建Graphics对象graphics。

(4)设置Graphics对象的插值模式为高质量插值法。

(5)利用设置好的参数调用DrawImage()方法在指定的位置重新绘图,生成规定大小等比例的缩略图。

(6)创建一个存放缩略图的目录,存放生成好的缩略图。

2.2 实现的关键代码

本文省去了实现的一些步骤和过程,只给出生成缩略图核心功能方法的原代码,具体如下:

3 结论

通过此方法,可以对各种类型的图像生成规定大小且等比例的缩略图,具有生成缩略图速度快的优点。在笔者开发的网上商城网站中用此方法对原始商品图像生成相应的商品缩略图,显著提高了网站后台管理人员的工作效率。是一种值借鉴使用的方法。

[1]白金牛,邢俊凤,柳原.ASP. NET下图像缩略图自动生成与上传方法.武汉理工大学学报,2009年2月.

[2]张玲,陈元春,孙勇.基于GDI+的通用图形平台设计.计算机工程,2005,31(12):218-220.

[3]苏贵洋.ASP.NET网络编程从基础到实践[M].北京:电子工业出版社,2005: 16-20.

猜你喜欢

背景色预先矩形
预先抛废技术在低品位磁铁矿中的工业应用
两矩形上的全偏差
提香:背景色也能“说话”
化归矩形证直角
国片需自强!2017年12月三大电影排行榜及预先榜
从矩形内一点说起
不同背景色对IPS E.max双层瓷结构颜色的影响
背景色对不同配色方案树脂比色结果的影响
航天项目风险管理——预先识别与控制风险到可接受程度
钛合金铣削功率预先计算技术研究