我需要将相对复杂的程序的GDI方法调用转换为等效的Direct2D代码。对于大多数GDI功能,我可以编写等效的代码。但是我还没有找到InvertRect的任何等效代码。由于绘图是动态完成的,因此我无法创建WICBitmap(否则将成为性能瓶颈)以获取像素并反转颜色。
有人可以建议我一个好的解决方案吗?
答案 0 :(得分:1)
如果您想反转已经绘制的区域,我相信您可以使用CreateEffect(CLSID_D2D1Flood)
来创建用纯色填充的效果,然后将效果的color参数设置为白色,然后使用{{ 1}},并使用ID2D1DeviceContext::DrawImage
作为D2D1_COMPOSITE_MODE_XOR
参数。
(现在我想到了,您可能还需要使用透明白 ...假设XOR也可以在alpha通道上运行。您可能需要进行实验。而且,它可能不会工作,我还没有尝试过。)
答案 1 :(得分:-1)
您可以使用Direct2D Effect。
有Built-in Effects,您可以使用Invert effect。