Any good C ++ library for displaying large raster images

I am currently using MFC / GDI and Stingray to display bitmaps in my application and am looking for a better solution. In particular,

  • Fast drawing speed. My current solution is slow, based on StretchDIBits.
  • Better rendering quality - StretchDIBits rendering quality is terrible when scaling a bitmap
  • Rotary bitmap support
  • Support for loading / saving in all popular formats
  • Large raster image support - I regularly use ~ 64 MB aerial photos, like 12,000 Γ— 12,000 JPEGs. GeoTIFF support would also be helpful.
  • Compatible with an MFC document / presentation, including printing (for example, must be able to display CDC)
  • Access to the source code is good, but not needed
  • Easy to use / port existing GDI code

Despite the fact that freedom is always good, I do not mind spending a reasonable amount on a decent library, although the cost of the fee is not required. Googling offers the following:

Has anyone gained experience with these or can recommend a good alternative?

+4
source share
3 answers

GDI + is available on any Windows machine with early XP. It has codecs for all popular image formats, including JPEG. Very good filters for high quality image scaling. Unlimited image rotation. Draws a CDC through the Graphics class. The source code for C ++ wrappers is available in the gdiplusXxx.h SDK header files. Speed ​​is likely to be equivalent, and rendering is software that provides compatibility.

You can #include <gdiplus.h> and use C ++ wrappers directly. SDK docs here . The CImage class is available in MFC, however, it does not reveal all the possibilities.

+3
source

I think it is unlikely that you will find something that works faster than GDI on Windows, since it supports the kernel level, which will not have open source problems.

You can also look in OpenGL or Direct2D / Direct3D, as they also have direct access to the frame buffer. With the 3D API, texture size is likely to be a problem, since most standards restrict something like 4096x4096.

+2
source

I have used CxImage in the past, which is added to your score list.

+2
source

Source: https://habr.com/ru/post/1311844/


All Articles