如何旋转ATL :: CImage对象

时间:2012-02-29 00:58:55

标签: c++ image atl

我的问题基本上是,如何旋转窗口ATL::CImage对象?

我使用windows ATL CImage对象加载了JPG图像,例如:

CImage myImage; myImage.Load(L"IMG1.JPG");

我还设法改变像素(使像素更亮)并保存新图像,现在我正在努力旋转我的图像。

我只需要能够以90度的增量旋转,因此任意旋转将是一个奖励

1 个答案:

答案 0 :(得分:1)

仅演示,错误处理省略,不应该这样做,只需使用GDI +图像而不是ATL CImage并保存像素复制的往返。

Bitmap* gdiPlusBitmap=Bitmap::FromHandle(atlBitmap.Detach());
gdiPlusBitmap->RotateFlip(Rotate90FlipNone);
HBITMAP hbmp;
gdiPlusBitmap->GetHBITMAP(Color::White, &hbmp);
atlBitmap.Attach(hbmp);