当前位置:首页 > ASP.NET开发经验(2) — ASP.NET中的一些图形处理

ASP.NET开发经验(2) — ASP.NET中的一些图形处理

点击次数:903  更新日期:2010-12-27
\n

如果大家用过 SharePoint Portal Server 2001,一定会记得增加型文件夹中的一些很不错的特性,如文档检出/检入、发布、审批流程等,其中最吸引我的就是它通过在文档的图标上加一个特别的标记,来表示文档的状态,如下图所示:
\n


\n


\n


\n


\n

自己在做文档管理系统时,也借鉴了这种做法,其实和给图片加水印的作法类似,主要代码如下:


\n

\n

//取源图像
Image imgPhoto = Image.FromFile(sSourceFile);
Bitmap bmPhoto = new Bitmap(imgPhoto.Width, imgPhoto.Height, PixelFormat.Format24bppRgb);
bmPhoto.MakeTransparent();
//设置绘图面属性,呈现质量等
Graphics grPhoto = Graphics.FromImage(bmPhoto);
grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
grPhoto.DrawImage( imgPhoto, new Rectangle(0, 0, imgPhoto.Width, imgPhoto.Height), 0, 0, imgPhoto.Width, mgPhoto.Height, GraphicsUnit.Pixel);


\n


//打开要附加的水印图片
Image imgWatermark = new Bitmap(sWatermarkFile);
Bitmap bmWatermark = new Bitmap(bmPhoto);
bmWatermark.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);
Graphics grWatermark = Graphics.FromImage(bmWatermark);


\n

int xPosOfWm = imgPhoto.Width – imgWatermark.Width;
int yPosOfWm = imgPhoto.Height – imgWatermark.Height;


\n

//画
grWatermark.DrawImage(imgWatermark,
new Rectangle(xPosOfWm,yPosOfWm,imgWatermark.Width,imgWatermark.Height),
0,
0,
imgWatermark.Width,
imgWatermark.Height,
GraphicsUnit.Pixel);


\n

//保存最终图片
imgPhoto = bmWatermark;
imgPhoto.Save(sIconFileName,ImageFormat.Png);

\n