如何旋转ATL::CImage对象

How to rotate an ATL::CImage object

本文关键字:ATL CImage 对象 旋转 何旋转      更新时间:2023-10-16

我的问题主要是,如何旋转windows ATL::CImage对象?

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

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

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

我只需要能够以90度的增量旋转,所以任意旋转将是一个额外的

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

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