1

使用 ImageMagick 库的 Magick++ C++ API,我正在尝试将 GeoTIFF 文件转换为 JPG 文件,如下所示:

Magick::Image input;
try {
   input.read("inputfile.tif");
   input.write("outputfile.jpg");
} 
catch (Exception &error) {
   cout << error.what() << '\n';
}

程序打印此消息并且无法创建 outputfile.jpg:

Magick: Unknown field with tag 33550 (0x830e) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/960

其他转换(.jpg 到普通 .tiff,.jpg 到 .pdf,普通 .tiff 到 .jpg,...)工作正常

有趣的是,绕过 API 并直接调用 ImageMagick convert命令有效(尽管仍然给我上述警告):

system("convert inputfile.tif outputfile.jpg");

但是我不希望在执行程序时需要安装的库。有一个更好的方法吗?GeoTIFF 格式的不同标头可能是问题所在吗?任何可以读取 TIFF 文件的程序不应该也能够读取 GeoTIFF 文件吗?

我应该忘记 ImageMagick 库并改用 GDAL 之类的东西吗?

问候,

4

0 回答 0