【问题标题】:Split a big geotiff file using java使用java拆分一个大的geotiff文件
【发布时间】:2015-06-01 18:13:48
【问题描述】:

我有一个很大的 geotiff 文件,我尝试使用 Java 语言将它们拆分成小的 png 图像,我无法读取所有图片BuffredImage,所以我只想读取它并将其保存为 2 张 png 图片。

我的问题是如何将这个大 geotiff 拆分为 2 个 png 或 jpeg 图像并将主题保存在磁盘上?

【问题讨论】:

  • 这里有什么问题?
  • 对不起,我刚刚编辑了它
  • 可能没有纯 Java 解决方案,但您可以使用 tiffmakemosaic 之类的实用程序从 LargeTIFFTools 分割图像。
  • @MickMnemonic 非常感谢你,你能把你的评论写成答案来结束这个问题吗
  • 没问题,我稍后再补充。我希望 LargeTIFFTools 适合你。我自己还没有尝试过,但我很快就打算这样做,因为我需要这样一个工具来自己拆分多 GB 的 tiff。

标签: java geotiff


【解决方案1】:

可能没有纯 Java 解决方案可以将非常大的 TIFF 文件拆分为更小的文件。但是,您可以使用LargeTIFFTools 中的tiffmakemosaic 之类的实用程序来分割图像。该实用程序带有用于将分割图像转换为 JPEG 格式的内置功能。

如果您需要将图像作为 PNG 格式,您可以使用例如this thread 中建议的 ImageIO 库。

【讨论】:

    【解决方案2】:

    使用 Java ImageIO,您应该能够仅将文件的一部分读入内存。如果 TIFF 文件是平铺的,您可以使用 ImageReader.readTile(int, int, int) 读取单个平铺。否则,您可以将 ImageReader.read(int, ImageReadParam) 与您已调用 setSourceRegion 的 ImageReadParam 一起使用。

    然而

    对这些功能的支持取决于实际的 ImageReader 实现。在这种情况下,Java ImageIO 没有为 geotiff 文件提供 ImageReader,因此您需要在其他地方获取它。由于 geotiff 是带有 TIFF 6.0 的 fully compliant,如果您不需要额外的地理数据,您可以使用普通的 TIFF 阅读器。有一个included in JAI。我还在这里找到了完整的 geotiff 阅读器:GeoTools。我不知道这些 ImageReader 是否支持读取部分图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      相关资源
      最近更新 更多