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

用于显示大位图的任何优秀C++库

  •  4
  • SmacL  · 技术社区  · 15 年前

    我目前正在使用MFC/GDI和Stingray在我的应用程序中显示位图,并正在寻找更好的解决方案。明确地;

    • 更快的绘图速度-我当前的解决方案基于stretchdibits
    • 更好的渲染质量-缩放位图时渲染质量很差
    • 支持旋转位图
    • 支持以所有流行格式加载/保存
    • 支持大型位图-我经常使用约64MB的航空照片作为12000x12000 JPEG格式。geotiff支持也很有用
    • 与MFC文档/视图兼容,包括打印(例如,必须能够呈现给CDC)
    • 访问源代码是好的,但不是必需的
    • 易于使用/移植现有的gdi代码

    虽然免费总是不错的,但我不介意花一个合理的数额在一个像样的图书馆,虽然没有运行时的版税费用。谷歌建议如下:

    有没有人有这方面的经验或者可以推荐一个好的替代品?

    3 回复  |  直到 11 年前
        1
  •  3
  •   Hans Passant    15 年前

    从早期的xp开始,gdi+就可以在任何windows机器上使用。它有所有流行的图像格式的编解码器,包括jpeg。非常好的高质量图像重缩放过滤器。不受限制的图像旋转。通过Graphics类绘制到CDC。C++包装器的源代码在SDK GPULISUXXX .h头文件中可用。速度可能相当,但渲染是基于软件的,以确保兼容性。

    你可以 #include <gdiplus.h> 并直接使用C++包装器。sdk文档 are here . cimage类在mfc中可用,但它并没有公开所有功能。

        2
  •  2
  •   shoosh    15 年前

    我想你不太可能找到能表演的东西 更快 而不是windows上的gdi,因为它有内核级的支持,这是开源解决方案所不具备的。

    您可能还需要查看opengl或direct2d/direct3d,因为它们也可以直接访问帧缓冲区。对于3d api,纹理大小可能是个问题,因为大多数标准都限制在4096x4096这样的大小。

        3
  •  2
  •   Rob    15 年前

    我用过 CxImage 在过去,哪一个可以添加到您的评估列表中。