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

问题描述:

我刚开始在我的MFC项目中使用ATL :: CImage,这是关于它的非常基本的问题。 我知道ATL :: CImage成员支持控制透明度的AlphaBlend(),以及支持旋转的plgblt()。但是,据我所知,它们都是在DC上“显示”的所有独立功能。 如何应用图像的透明度和旋转度并显示/保存图像?如何通过使用ATL :: CImage旋转并使图像同时变为半透明?

我知道GDI +支持所有我想要的东西,但我想知道如何使用CImage类成员来实现它们。

谢谢。

+1

您可能还想考虑[boost GIL](http://www.boost.org/doc/libs/develop/libs/gil/doc/index.html)。我这样做是免费的Windows API。 [Here](http://lakeweb.net/temp/gil.cpp)就是它的样子。 – lakeweb

这是不可能的相同的方式。您可以为每个操作使用临时DC。

  1. 使用所需大小的位图创建DC。
  2. 将CImage的操作执行到DC中。
  3. 从DC获取位图并形成一个新的CImage,或者直接使用DC。

更好的方法是使用GDI +来执行此类操作。仅当需要存储临时结果或需要重新使用时才需要CImage。