我目前使用MFC/GDI和Stingray在我的应用程序中显示位图,并且正在寻找更好的解决方案。特别;任何用于显示大型位图的良好C++库
- 更快的绘图速度 - 我现在的解决方案是缓慢的,基于的StretchDIBits
- 更好的渲染质量 - 的StretchDIBits缩放位图旋转的位图
- 支持时渲染质量是可怕的
- 支持加载/保存在所有流行的格式
- 支持大的位图 - 我经常使用的航空照片是〜64mb的12,000x12,000 jpegs。 GeoTIFF文件的支持也将是有益的
- 与MFC文档/视图,包括打印兼容(如必须能够呈现到CDC)
- 访问源代码,是好的,但没有必要
- 易于使用/端口现有的GDI代码
虽然免费总是很好,但我不介意花费一个合理的金额在一个体面的图书馆,虽然没有运行时间的版税费用。谷歌搜索建议如下;
任何人得到的这些经验或能推荐一个很好的替代品?
我看到您将JPEG的缩放比例超过了8倍。在这种情况下,您应该在JPEG级别完成缩放,而不是位图。这是*方式*更快。 JPEG使用傅立叶分量压缩8x8像素的块。显式存储的{0,0}组件是平均值。因此,将JPEG图像缩小8倍是血腥快速和相当平凡的。您会从12000 * 12000像素JPEG中获得1500 * 1500的位图,并且很可能您的磁盘速度将成为此处的限制因素。 – MSalters 2010-06-04 11:59:59
@ MSalters,很好的评论,并且我使用的命令是StretchDIBits,我猜你说的是真的。更有理由采用不同的方法。 – 2010-06-04 13:48:04