我有一个非常大的图像(10000 * 10000),由于多种原因我无法修改它(比如将它切成较小的图块。)
我不想显示整个图像,而是显示它的一小部分以提高GUI效率。 但是当用户单击并拖动它时,图像的新部分将显示在视口中。 那么,我怎样才能动态提取一部分图像数据呢?
答案 0 :(得分:1)
我不记得Qt在分辨率非常高的情况下为部分图像提供任何支持。也许请查看libtiff。
基本上,图像将由条带或图块组成,因此您可以分别使用tiffreadscanline()
或tiffreadencodedstrip()
来加载图像的某些部分。您可以使用适当的分辨率为视口创建另一个图像。
或者,您可以查看QTiffHandler
类,它是Qt中的私有类,因此无法直接访问,但您可以复制它,并在必要时修改源以公开其功能。在内部,它也使用libtiff
。