使用 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 之类的东西吗?
问候,