gdal_translate 中的 JPEG 压缩:错误的 JPEG 库版本

JPEG compression in gdal_translate: wrong JPEG library version

我试图通过操纵 gdal_translate 命令的压缩开关来减小简单的山体阴影 geotiff 的大小,受到 this 很棒的博客条目的启发。但是,带有 -co COMPRESS=JPEG 的 运行ning 命令会导致以下众所周知的错误:

ERROR 1: JPEGLib:Wrong JPEG library version: library is 62, caller expects 80

我确保我删除了每个基于实例 6 的 libjpeg 库并安装了所有可能的基于 8 的 libjpeg 库,但问题仍然存在。我有 GDAL 版本 2.0.0。 运行宁 Ubuntu 16.04.1 Xenial。

有人运行遇到同样的问题吗?

是输入 (geotiff) 还是依赖相关的问题?

检查从 gdal_translate:

中引用了哪些库
ldd /bin/gdal_translate
ldd /bin/gdal_translate | grep jpeg

检查您的库符号链接指向何处,如所述here:

列出您的库文件夹中的所有文件,并 grep 查找您要查找的库:

cd /usr/lib64/
ls -la | grep jpeg

cd /usr/local/lib
ls -la | grep jpeg

cd /usr/lib
ls -la | grep jpeg

确保您所有的符号链接都指向正确的版本:

lrwxrwxrwx  1 root root       17 Mar  8 09:54 libjpeg.so -> libjpeg.so.62.0.0*

应该是

lrwxrwxrwx  1 root root       17 Mar  8 09:54 libjpeg.so -> libjpeg.so.8.3.0*

安装提供正确版本的库或手动创建符号链接。

不幸的是,我还没有找到解决原始问题的方法,但我确实找到了一个很好的解决方法来将 JPEG 压缩应用于 TIF 光栅,这无论如何都是我的原始问题。

出于某种原因,从 Python 的 GDAL API 中调用 gdal_translate 与 "COMPRESS=JPEG" 选项没有问题。所以,这对我有用:

from osgeo import gdal
ds = gdal.Open("Raster.tif")
ds = gdal.Translate("Raster_compressed.tif", ds, creationOptions=['COMPRESS=JPEG'])