图形图像处理高手:与你继续讨论如何实现画图软件的多层(layer)处理??
原来发过一篇贴子:
“如何实现画图软件的多层处理? 就像photoshop中的层一样? 怎么实现的可以在不同的层上绘制图像? ”
经过shu vonvon jesun 等同志的讨论 有以下结论:
1. 面向对象的层管理(比较有条理) 输出显示时使用顺序输出(队列或堆栈)或 按特殊需要输出
2. 关键问题透明的实现: 用32bit真彩的alpha分量(最高8bit)来表示透明,
所有的非透明色这8bit都置为同一个值(比如说0),而透明色置为另一个值 (例如255)
3. 刷新显示:如果有n个层的话,那在内存里就有n个位图,或者干脆就只是位图 的数据,每次刷新的时候将每个层叠和起来
见 : http://www.csdn.net/expert/topic/85/85275.shtm
我在书店翻了一段时间,在一本CGI(计算机图形接口)设计的书上找到一种层的
实现方式:
就是简单的为图形分一个Layer ID 比如直线1 layer id=2 就是第二层的
显示的时候根据layer ID 来判断是否显示
这种实现方式, 对CAD 等简单线条的系统 是可以考虑的但是对一个图像处理软件来说,就不行了,太慢了!
现在分层处理在图像处理中应该是比较成熟的技术了,但是好像掌握的人还不多。所以再次提出来给大家讨论!老外能做的,我们也能做!