代码之家  ›  专栏  ›  技术社区  ›  CodeLikeBeaker

C++自旋图像资源

  •  0
  • CodeLikeBeaker  · 技术社区  · 15 年前

    有人知道一个好的资源,它会告诉我如何用C++加载图像并旋转它吗?

    我所说的旋转是指对图像进行实际动画旋转,而不是实际旋转图像并保存它。

    如果我对我的要求不清楚,请在投反对票之前要求澄清。

    谢谢

    5 回复  |  直到 15 年前
        1
  •  2
  •   DaClown    15 年前

    SDL 以及延伸部分 sdl_image 和/或 sdl_gfx

        2
  •  6
  •   DeusAduro    15 年前

    对于这种类型的任务,我绝对会默认为OpenGL,您可以将图像加载到纹理中,然后以不同的角度重新绘制图像,或者更好地说,您可以在OpenGL引擎中旋转“相机”。这里有大量的OpenGL教程,快速的谷歌搜索将为您提供所需的一切。

        3
  •  1
  •   Kirill V. Lyadvinsky    15 年前

    在使用gdi+的Windows中,可以按以下方式显示旋转图像:

    Graphics graphics( GetSafeHwnd() ); // initialize from window handle
    // You can construct Image objects from a variety of 
    // file types including BMP, ICON, GIF, JPEG, Exif, PNG, TIFF, WMF, and EMF.
    Image image( L"someimage.bmp" );    
    
    graphics.RotateTransform( 30.0f );  // 30 - angle, in degrees.
    graphics.DrawImage( &image, 0, 0 );   // draw rotated image 
    

    你可以阅读 here 更详细的解释。


    第二个解决方案是使用 DirectX . 你可以创造 texture from file 以后 render 它。这不是一个简单的解决方案,但它将使用硬件加速,并为您提供最佳性能。


    在Windows 7上有可用的新API Direct2D . 我还没用过,但看起来很有前途。

    Direct2d使Win32开发人员能够以优异的性能和视觉质量执行二维图形渲染任务。

        4
  •  -1
  •   ufukgun    15 年前

    我同意德乌萨杜罗的观点。 OpenGL 是一个很好的方法。

    你也可以用 QT

        5
  •  -1
  •   Paul Nathan    15 年前

    “自己动手”的解决方案很困难。

    我建议研究一下WPF——它在图像控件中可能有一些不错的选项。