我正在使用Graphics32进行图像处理。看看它的功能,让我感到震惊的是,我还没有看到剪贴蒙版的正确实现。我确实看到这里和那里出现了“剪辑”一词,但它似乎指的是别的东西。
简而言之,我需要一层作为另一层的“窥视孔”;A 层应该投影到 B 层上,但只能在 B 层可见的地方。(我认为不再需要重新定义剪贴蒙版。)
如果它只是我想要呈现的另一层的位图,它不会那么难做 - 然后我可以使用这个技巧- 但让事情变得复杂的是,一个层的位图并不能说明很多关于图层将显示的内容;该层可以是:
- (部分)不可见(在视野之外)
- 移动/拉伸+可选重新采样
- 旋转
对其位图没有影响。
是不是真的没有现成的实现呢?自己做这件事有什么建议吗?
进步
我在 Graphics32 的源代码中发现了一些有用的元素。例如,使用此声明:
type
TLayerAccess = class(TBitmapLayer);
为了访问受保护的方法,我可以调用TLayerAccess(ABitmapLayer).Paint(ABitmap32)
将这一层绘制到位图上,就像在屏幕上一样。