Direct2D相当于GDI InvertRect

问题描述 投票:1回答:2

我需要将相对复杂程序的GDI方法调用转换为等效的Direct2D代码。对于大多数GDI函数,我可以编写等效的代码。但我没有找到任何与InvertRect相同的代码。由于绘图是动态完成的,我无法创建(或者它将是性能瓶颈)WICBitmap来获取像素并反转颜色。

有人能建议我一个好的解决方案吗?

winapi gdi direct2d
2个回答
1
投票

如果你想反转已经绘制的区域,我相信你可以使用CreateEffect(CLSID_D2D1Flood)创建一个用纯色填充的效果,然后将效果的颜色参数设置为白色,然后使用ID2D1DeviceContext::DrawImage效果并使用D2D1_COMPOSITE_MODE_XOR compositeMode参数。

(你可能还需要使用透明的白色,现在我想起来了......假设XOR也在alpha通道上运行。你可能需要进行实验。而且,它可能不起作用,我还没试过。)


-1
投票

你可以使用Direct2D Effect

Built-in Effects,你可以使用Invert effect

© www.soinside.com 2019 - 2024. All rights reserved.