首页 > 解决方案 > GDAL:Python GDAL.Translate 能否将 TIFF 文件转换为 JPEG 或 PNG 数组——而不是写入文件?

问题描述

我有 python 代码将GeoTIFF图像文件转换为JPEG图像文件。但是,我想在内存中执行此操作,这意味着我想读取GeoTIFF文件,将其转换为 JPEG,然后将转换后的数据存储到内存结构中,numpy理想情况下是数组。有没有办法做到这一点?

这是我希望适应的一些示例代码:

from osgeo import gdal

scale = '-scale min_val max_val'
options_list = [
    '-ot Byte',
    '-of JPEG',
    scale
] 
options_string = " ".join(options_list)

gdal.Translate('test.jpg',
               'test.tif',
               options=options_string)

此代码使用GDALpython api,但它需要一个引用文件的输出类型,如test.jpg上面的代码。但我不想指定输出文件——而是想将结果输出到某种数组。

请注意,我确实尝试GDAL过这种转换而没有使用,但是所有像素强度范围都被压缩到一个非常小的范围,而不是从GDAL.Translate().

不适用的研究答案

请注意,我研究了有关此主题的其他一些 Stack Exchange 帖子,但它们都会将GeoTIFF文件转换为另一个文件。我不想写一个新文件。为方便起见,我在此处包含链接,但关键是现有发布的问题与此问题不匹配。

如何在python或java中将geotiff转换为jpg?

有任何想法吗?

标签: pythonimage-processinggeospatialgdal

解决方案


推荐阅读