在知春路和知春里之间,我悄悄不能显示的触摸屏就想到了如何设计。
我先期做好了基础库的开发,QQ浏览器也不过是冰山一角。
图像浏览器
图像动画播放组件
图像滤镜组件
图像缩微组件
图像展示器组件
图像轨迹窗组件
图像识别组件库-->JAVA LIB。
现在要完成图像绘图组件,画布绘图组件。以上已经作为多个产品提供基础支持。现在要在图像浏览器不但要增加图像绘图组件、并且提供画布绘图组件,关键是图像浏览器已经通过测试。但是需要对原来的提供支持。
原有的组件采用动画重绘,单以重绘而言,就有异或重绘缓冲叠加两种,先对而言异或速度快,但是问题也很多,比较处理,要晓得整个项目组核心设计的开发人员就我孤家寡人一个,可能是社会的普遍现象。(想想360杀毒,安全卫士等强大的产品线,底层的开发人员我想也就几个才对。没准也是一个,当然我无法和他们相比。)
原来的组件需要重绘,我但是看到了地铁里的触摸屏敲了敲,想象原来是透明的,如果我们重新开发一个组件是一个透明的,可以任意叠加是多好啊,我把他叫做触摸屏。现在很多LCD屏幕的手机也是屏幕是屏幕,触摸屏幕是触摸屏,非常好拆卸。当然毕竟有玻璃感,效果差点。
如果我采用触摸屏模式,那么图层组件就会创建一个图像的副本,内存就会扩大1倍,我想大图像也消耗不了最多浪费1M。
但是这个对于我个人来讲是最划算的,毕竟工资不多,活死多。只能如此了。
后来想象,Adobe Firework可能都是这样设计的。我们的组件功能也不少,暂时没有想过支持切片。
后台的缓存层,Adobe Firework cs可能也是图像层和绘图层不断的叠加,所以绘图不能超过边界,但是我想会Adobe最后也是考虑采用双缓冲,浪费内存在位图上直接绘制,这样就不会超界了。
不过我但是的想法是可以画到画布层的外面,所以纠结,想象想象真是无聊。
接下要处理什么呢?
1)处理玻璃层,玻璃层是否能够在擦除时不会出现其他问题。
2)我们的操作图像层不会有其他的操作,更多的是滤镜操作,所以,只有一个图层,而图层就是其他组件的容器。
如图
PhotoShow--> ImageInfo绘制
GlassCanvas:绘图组件。
ShapePanel:--->
黑白底色:
GlassCanvas.
多个绘图层。
==========================================
矩阵变换:自己处理太麻烦了,直接处理底部的控件的重绘变换,最后把GlassCanvas.ShapeImage画上去。
前面处理变换,后面不处理矩阵变换。