微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 Magick++ API 读取 GeoTIFF 文件

如何解决无法使用 Magick++ API 读取 GeoTIFF 文件

将 Magick++ C++ API 用于 ImageMagick 库,我正在尝试将 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 之类的东西吗?

问候,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。