我现在有一个很大的图片,(600多MB) 是jpg的。 我想只显示其中的一部分,或者全部显示(缩略图), 有没有什么好的建议?或者什么方法好一些。摆脱各位了。

解决方案 »

  1.   

    简单的方法也有,不过,你得有一个超级牛B的机器。用现有的方法解码整个图,然后,缩放或选取你需要的那一小部分,然后显示。不过这样的话,即使你的机器超牛B,估计也得等上几小时才能看到结果。至于部分解码或取缩略图你去OPENCV或CXIMAGE等图像库找找看有没有相关现成算法。
      

  2.   

    你可以尝试事先把图片分割成小块保存,然后按位置索引,google earth好像也是这么做的。
      

  3.   

    jpg600多兆不是很准,解开成BMP看看长宽多少,可以自己解也可以用工具解。处理的时候只用BMP吧。
    不知道你有什么显示要求,大图片一般都要求ZOOM和ZAOM。
    显示一部分割出来就可以了,基本思路可以将文件映射到内存,另开空间保存切割的部分,为这个切割出来的部分做一个HEADER,就可以显示了。
    想全显示就做图像金字塔。
    biImageSize超过4G就要一部分一部分做了。
      

  4.   

    不知道楼主是做那里一块的了,我才看到了有关GDAL方面的一个开源类库,楼主不妨试试。
      

  5.   

    没办法的,只能解压成raw数据然后根据显示窗口的大小计算偏移来显示.
    600M+的jpeg估计最小也得几十个G了吧.
      

  6.   

    jpg的是100多兆,bmp的600多兆。 我准备一个个字节的读出来~~这样就可以只读一部分,不用全部加载到内存了。 就是文件的读写,还有缓冲区的读写不怎么懂~  有没有哪位大侠给个类似的源码~~  不胜感激涕零