求教图形图像处理高手:如何实现画图软件的多层(layer)处理??

tobato 2001-03-16 10:46:00
如何实现画图软件的多层处理? 就像photoshop中的层一样? 怎么实现的可以在不同的

层上绘制图像?
...全文
292 点赞 收藏 17
写回复
17 条回复
X_Window 2001年11月02日
用CObjList
回复 点赞
vonvon 2001年05月01日
如果有n个层的话,那在内存里就有n个位图,或者干脆就只是位图的数据,每次刷新的时候
将每个层叠和起来,B=sigma(wk*Lk) k=1...n,wk是用于alpha混合的权重系数,sigma(wk)=1
k=1...n。Lk是第k个层的位图数据,将计算的结果B画到显示DC上。我想这样并不存在删除层
的困难。Mr.jesun, is that right?
回复 点赞
jesun 2001年04月22日
我的想法还不成熟,大概是这样的,请多指教:
我想对于windows显示图像来说,一旦层加上去显示出来之后,那么就已经将数据加入了DIB之中,要删除莫非要从DIB中筛选出来再减去吗?如果是这样做的话企不是要比添加层复杂多了。
否则的话,请您说说正确的删除层应该怎么做?
回复 点赞
vonvon 2001年04月22日
总算又有人来讨论了。
我想删除一个层不会比加入一个层困难多少。
能否说说你的想法,Mr.jesun。
其实这是一个非常有趣的问题,为什么来讨论的人这么少
回复 点赞
jesun 2001年04月20日
这里高手很多啊。我想插嘴问一下:你们认为层管理是只加层,而不需要删除一个层吗?因为我觉得要删除一个层很难。
回复 点赞
vonvon 2001年04月04日
总是需要在速度与效果之间做出妥协,没办法的
回复 点赞
tobato 2001年03月31日
同志,继续啊? 用alhpa 是不是处理速度太慢了??
回复 点赞
vonvon 2001年03月22日
不知道还有没有讨论这个问题的同志。
关于图像的分层也是我考虑了很久的问题。
关于分层的数据结构问题,我想shu()同志讲得有一定道理,但我是c的忠实支持者,
如果叫我来实现,恐怕我不会使用类,但实现方法并不构成解决分层问题的障碍。
我想说的有以下几点:
1。透明。这是分层的关键,怎样才能表示一幅图上透明的部分?对于256色来说,
还比较容易做到,可以定义一个调色版中没有的颜色。但对于32bit,24bit真彩
图该怎么办?任何一种颜色都是图像中可能出现的,不能用保留色彩的办法来表示
透明的部分。同样因为这个原因,用mask也不能达到去处透明部分的目的。如果一定
要这样做,也许我会这么设计:用32bit真彩的alpha分量(最高8bit)来表示透明,
所有的非透明色这8bit都置为同一个值(比如说0),而透明色置为另一个值(例如
255),也许这是个好办法,但势必降低处理速度,必须逐点判断某个像素是否为
透明的。
如果还有同志想继续讨论,我会讲下面几点...
回复 点赞
tobato 2001年03月20日
加油! 加油! shu 的思路挺好的 继续加分
回复 点赞
shu 2001年03月19日
我看用不着申请不同的CDC,因为CDC只是抽象输出装置,就象你面对的白纸一样。
况且分层的概念主要在于层之间互相区别,防止干扰,不仅仅在于输出。
所以,我们应首先归纳分层到底有那些需求?相应有哪些数据结构?
1、层的独立性,它的操作是独立的,管理的数据是独立的,实际上输出结果也是独立的——你可以屏蔽或激活它的输出。
2、层与层之间存在数据甚至操作上的交流——这需要仔细分析。
3、尽管各层的数据不同但对所有层的操作是基本一样的。
4、能够输出的层是按一定规则输出到统一的CDC上,简单的规则就是顺序输出(队列或堆栈),复杂点向窗口一样有自己的输出属性比如z-order或其他加权。

以上只是一些简单分析,但完全可以预见我们的设计方向:
1、层及层中的数据以不同的类来管理,层的类用来管理和操作属于该层的数据的类的对象。
2、会有第三个类对层进行管理和操作。
3、输出肯定复杂些,但说到底是安排各层及其所属数据对象的输出顺序,输出权。安排好顺序后激活wm_paint,从头到尾把各层各对象过边筛子。
我原先理解WINDOWS的ONPAINT(重画机制)非常的笨,但它的确适合这种复杂对象的输出。
要不然微软早想出更好的办法了。
回复 点赞
telong 2001年03月19日
每层用一个链表记录信息。
回复 点赞
william_008 2001年03月19日
我想是这样的:不同的图层用不同的CDC表示,但显示时就把这几个CDC中的位图相应点进行相加,异或这类的运算,把结果送到另外一个CPaintDC中显示
回复 点赞
tobato 2001年03月19日
还是没人会..... 不会吧?? 高手快来啊!
回复 点赞
classfactory 2001年03月19日
http://www.csdn.net/expert/Topic/67225.shtm
回复 点赞
cloud_soft 2001年03月18日
gz
回复 点赞
tobato 2001年03月18日
没人搞的定?? 不会吧....
回复 点赞
xiangfangpu 2001年03月16日
关注
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7898

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告