博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GDAL创建图像提示Driver xxx does not support XXX creation option的原因
阅读量:7040 次
发布时间:2019-06-28

本文共 2397 字,大约阅读时间需要 7 分钟。

经常在群里有人问,创建图像的时候为什么老是提示下面的信息。

CPLError: Driver GTiff does not support DCAP_CREATE creation optionWarning 6: Driver GTiff does not support DCAP_CREATE creation optionCPLError: Driver GTiff does not support DCAP_CREATECOPY creation optionWarning 6: Driver GTiff does not support DCAP_CREATECOPY creation optionCPLError: Driver GTiff does not support DCAP_VIRTUALIO creation optionWarning 6: Driver GTiff does not support DCAP_VIRTUALIO creation optionCPLError: Driver GTiff does not support DMD_CREATIONDATATYPES creation optionWarning 6: Driver GTiff does not support DMD_CREATIONDATATYPES creation optionCPLError: Driver GTiff does not support DMD_CREATIONOPTIONLIST creation optionWarning 6: Driver GTiff does not support DMD_CREATIONOPTIONLIST creation optionCPLError: Driver GTiff does not support DMD_EXTENSION creation optionWarning 6: Driver GTiff does not support DMD_EXTENSION creation optionCPLError: Driver GTiff does not support DMD_HELPTOPIC creation optionWarning 6: Driver GTiff does not support DMD_HELPTOPIC creation optionCPLError: Driver GTiff does not support DMD_LONGNAME creation optionWarning 6: Driver GTiff does not support DMD_LONGNAME creation optionCPLError: Driver GTiff does not support DMD_MIMETYPE creation optionWarning 6: Driver GTiff does not support DMD_MIMETYPE creation optionCPLError: Driver GTiff does not support DMD_SUBDATASETS creation optionWarning 6: Driver GTiff does not support DMD_SUBDATASETS creation option

测试的代码如下:

GDALAllRegister();            GDALDriver *poDriver = GetGDALDriverManager()->GetDriverByName("GTiff");            char **papszCreateOptions = poDriver->GetMetadata();            GDALDataset *poDS = poDriver->Create("D:\\test.tif", 512, 512, 3, GDT_Byte, papszCreateOptions);            // do something            GDALClose((GDALDatasetH)poDS);

上面的代码中有个错误就是papszCreateOptions这个参数的值设置错误,如果没有创建选项,就指定为NULL就可以了,为啥要获取Dirver的元数据呢???

注意上面的代码,Create函数或者CreateCopy函数中有个参数叫CreateOptions,这个参数的意思就是为了指定创建图像的一些特殊选项,比如Tiff图像的压缩方式,Jpeg图像的压缩率,ENVI的图像存储方式等等,每种驱动所对应的创建选项也不会相同,具体的都可以在gdal的官网中的格式说明中找到非常详细的介绍,每种驱动页面中只要是支持创建的格式一般都会有一个Cerete Options的章节,里面就是这种格式的创建选项以及使用设置的参数信息。

知道了这个参数的原因,就明白了为什么会出现上面的提示,主要原因就是你设置的创建选项是错误的,所以GDAL提示了出来。

这个问题群里面非常多的人问,我觉得应该是有人在网上将这种错误的写法贴出来了,所以我搜了下,下面的网址中的用法都是这个原因导致的。

(char **papszMetadata = poDriver->GetMetadata();)

最后希望大家在网上搜索资料的时候学会判断哪些是对的,那些是错误的,不要一股脑的全部拿来用。

转载于:https://www.cnblogs.com/xiaowangba/p/6313900.html

你可能感兴趣的文章
搭建和测试 Redis 主备和集群
查看>>
Android应用资源
查看>>
app开发中如何利用sessionId来实现服务端与客户端保持回话
查看>>
swift学习笔记(五)构造过程
查看>>
es67
查看>>
浅谈 trie树 及事实上现
查看>>
sklearn特征抽取
查看>>
Android中加入思源字体/NotoSansCJK/SourceHanSans
查看>>
How to suppress 'Maybe this is program method' warnings from ProGuard
查看>>
基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果...
查看>>
jquery获取input值的各种情况
查看>>
字符串格式化及字符串的一些方法
查看>>
C#有关的vshost、exe、config格式说明
查看>>
i386和x86-64区别通俗易懂版本(转)
查看>>
Nginx反向代理+Tomcat+Springmvc获取用户访问ip
查看>>
Android使用Fragment打造万能页面切换框架
查看>>
kafka分布式搭建
查看>>
hog
查看>>
Codeforces 833D Red-black Cobweb【树分治】
查看>>
nginx的日志分析
查看>>