最近做了一个项目,需要对HTML页面进行盖章和手写签名,寻找了一些现有的控件以后,价格都很高
分析了其中的技术之后,自己着手制作了一个,并创立了一个讨论区,准备将其开源化
具体的东西和演示可以到 http://simple.okbt.net 查看
废话少说,现在开始正题.
这个项目是基于MFC的ActiveX控件,至于怎么开发基于MFC的ActiveX控件,
如何为控件实现 IObjectSafety 接口等一些ActiveX控件技术这里不想多说了,有问题大家可以到
http://simple.okbt.net/bbs 讨论,这里主要介绍电子签章用到的一些技术.
首先是图形绘制,无论是手写还是加盖其他的图片到一个也面上,主要就是读取图象然后绘制.
我使用的是GDI+,因为他可以方便的读取gif,jpg,png等多种图象格式,
但是将普通的图形绘制上去以后是无法达到印章效果的,印章应该是透明的,
不知道大家有没有注意观察实际生活中的印章,他与纸面上的文字和颜色实际上是一种 变暗混合模式(BlendDarken) 也就是将印章图片上所有的点与背景颜色比较,颜色深就使用背景色,颜色浅使用印章颜色,
伪代码可以这么写
混合后的点 = (背静图片某点 < 印章图片某点) ? 印章图片某点 : 背静图片某点;
在绘制图片之前,先获取浏览器控件位置的位图,与印章图片混合后再显示,这样就可以达到印章效果了.
上班了,先写到这里,陆续更新中