我正在使用Graphics32进行图像处理。看看它的功能,这让我觉得我还没有看到剪贴蒙版的正确实现。我确实看到“裁剪”这个词在这里和那里出现,但它似乎指的是别的东西。使用Graphics32创建剪贴蒙版
简而言之,我需要一个图层作为另一个“窥视孔”的功能;层A应投影到层B上,但只能在层B可见的位置。 (我再也不需要重新定义一个剪贴蒙版了。)
如果它只是我想呈现的那个其他图层的位图,那么它不会那么难 - 然后我可以使用this trick - 但是事情的复杂性在于,图层的位图并没有讲述图层显示的内容。该层可以是:
- (部分地)不可见的(当从图的)
- 移动/拉直+任选重采样
- 旋转
在其位图没有影响。
实际上是否这样没有现成的实现呢?任何建议自己做这个?
进展我发现Graphics32的源一些有用的元素。例如,使用此声明:
type
TLayerAccess = class(TBitmapLayer);
才能访问受保护的方法,我可以叫TLayerAccess(ABitmapLayer).Paint(ABitmap32)
有这只是涂上一层为位图,正是因为它会在屏幕上。
graphics32仅使用32nit位图,它是用于混合的位图的Alpha通道。我不知道你可以使用的另一个字段(例如裁剪区域等)。你只有另一个“主阿尔法”。我会。 1.确定阿尔法位图(全白,阿尔法通道是位图坐标中的剪切路径),将原始位图相乘到该位图中,然后将位图渲染到目的地。 –
如何定义图层B的哪些部分可见? – iamjoosy
@iamjoosy我可以在容器中绘制时看到它(TImage32)。 –