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

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

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

//取源图像

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);

//打开要附加的水印图片

Image imgWatermark = new Bitmap(sWatermarkFile);

Bitmap bmWatermark = new Bitmap(bmPhoto);

bmWatermark.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);

Graphics grWatermark = Graphics.FromImage(bmWatermark);

int xPosOfWm = imgPhoto.Width - imgWatermark.Width;

int yPosOfWm = imgPhoto.Height - imgWatermark.Height;

//画

grWatermark.DrawImage(imgWatermark,

new Rectangle(xPosOfWm,yPosOfWm,imgWatermark.Width,imgWatermark.Height),

0,

0,

imgWatermark.Width,

imgWatermark.Height,

GraphicsUnit.Pixel);

//保存最终图片

imgPhoto = bmWatermark;

imgPhoto.Save(sIconFileName,ImageFormat.Png);

如果文档有审阅流程,那文档的流转图就非常受欢迎了,这样用户可以方便地查看文档正处于那个阶段。

其实与工作流有关软件可能都有这样要求,我目前没有找到更好的办法,利用 <table> ,将各个阶段

用线条和图形表示出来,办法虽有点笨,但好象显示效果还不错。

曾经试过 VML ,发现要动态地画这种图,就得很精确地控制屏幕上位置,比较麻烦,后来放弃了这种作法。

还曾经想用 Visio Automation 来试一下,发现 Visio 的对象模型和 VBA 比 Word 和 Excel 的难多了,工作量更大。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航