【问题标题】:How to rotate an ATL::CImage object如何旋转 ATL::CImage 对象
【发布时间】:2012-03-18 12:41:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c++ image atl


    【解决方案1】:

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

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

    【讨论】:

    • 这完全符合我的要求,谢谢。我会听取您的建议并直接使用 GDI+ 来检索图像等 :)
    猜你喜欢
    • 2019-10-02
    • 2018-02-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多