如何使用 ATL::CImage 旋转并同时使图像半透明?

How can I rotate and make the image semitransparent at the same time by using ATL::CImage?

我刚开始在我的 MFC 项目中使用 ATL::CImage,这是一个非常基本的问题。 我知道 ATL::CImage 成员支持用于控制透明度的 AlphaBlend() 和用于旋转的 plgblt()。但据我了解,它们都是DC上仅"Displaying"的独立功能。 如何应用图像的透明度和旋转以及 display/save 它?

我知道 GDI+ 支持我想要的一切,但我也想知道如何用 CImage class 成员实现它们。

谢谢。

这不可能以同样的方式进行。您可以为每个操作使用一个临时 DC。

  1. 使用所需大小的位图创建 DC。
  2. 执行CImage到DC的操作。
  3. 从 DC 获取 Bitmap 并形成一个新的 CImage 或简单地使用 DC。

更好的方法是始终使用 GDI+ 来执行此类操作。 CImage只有在需要存储中间结果,或者需要重用的时候才需要。