之前生成的gdal 2.1.1动态库,在通过命令行执行时,遇到有中文路径或中文图像名时,GDALOpen函数不能正确的被调用,如下图:

解决方法:

1.      在所有使用GDALAllRegister();语句后面加上一句CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");

2.      修改源码:将frmts/gdalallregister.cpp文件中GDALAllRegister()函数体内最上面加是一条CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");语句。

这里采用的是第一种方法,修改后的测试代码如下:

int test_gdal_support_chinese_path(int argc, char* argv[])
{if (argc < 2) {fprintf(stderr, "params fail\n");return -1;}GDALAllRegister();CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");GDALDataset* poSrc = (GDALDataset*)GDALOpen(argv[1], GA_ReadOnly);if (poSrc == nullptr) {std::cout << "input image error" << std::endl;return -1;}int width_src = poSrc->GetRasterXSize();int height_src = poSrc->GetRasterYSize();int band_count_src = poSrc->GetRasterCount();fprintf(stderr, "image width: %d, height: %d, bandCount: %d\n", width_src, height_src, band_count_src);GDALDataType gdal_data_type = poSrc->GetRasterBand(1)->GetRasterDataType();int depth = GDALGetDataTypeSize((GDALDataType)gdal_data_type);fprintf(stderr, "depth: %d\n", depth);GDALClose((GDALDatasetH)poSrc);return 0;
}

结果如下图:

如果使用到OGRAllRegiser()函数,为了支持中文,那么也需要作同样的修改。

GitHub:https://github.com/fengbingchun/GDAL_Test

使GDAL库支持中文路径或中文文件名的处理方法相关推荐

  1. GDAL C#中文路径,中文属性名称乱码问题

    昨天写的博客,将C#读取shp中文属性值乱码的问题应该可以解决,博客地址为:http://blog.csdn.net/liminlu0314/article/details/54096119,然后又测 ...

  2. cv2.imread无法读取/保存中文路径下的图片的解决方法

    cv2.imread无法读取/保存中文路径下的图片的解决方法 关于无法读取 用cv2.imread读取中文路径下的图片会出现空.这种情况下windows会出现,mac好像还没出现过. 解决方法是,使用 ...

  3. python图片(带有中文路径和中文名称的)读写

    import cv2 import numpy as np import os # 读带有中文路径和中文名称的图片 def cv_imread(file_path):cv_img = cv2.imde ...

  4. 修改GDAL库支持RPC像方改正模型

    最近在做基于RPC的像方改正模型,方便对数据进行测试,修改了GDAL库中的RPC纠正模型,使之可以支持RPC像方改正参数. 下面是RPC模型的公式,rn,cn为归一化之后的图像行列号坐标,PLH为归一 ...

  5. 修改GDAL库支持IRSP6数据

    使用GDAL库发现不能打开IRSP6的数据,不过看GDAL提供的文件格式里面却是支持IRSP6的数据的,具体可以参考网页http://www.gdal.org/frmt_fast.html.下面图1是 ...

  6. 中文路径_中文分词的原理、方法与工具

    海德格尔说"词语破碎处,无物可存在".中文句子不像英文那样的词与词之间有显示空格边界,使得词和词组边界模糊. 为了让计算机更容易理解文本,通常中文信息处理的第一步是中文分词.中文分 ...

  7. 英文版系统的 IIS支持中文路径及中文文件名

    按迷信的说法是: 按时辰分析吉凶 子时:23点--01点前 左眼:意外之喜降临,会有不错好运,你的心脏要强一点,别兴奋过了头. 右眼:有人请你吃饭,可以省下一笔钱,但是这个人的目的不明,你要多多斟酌. ...

  8. 编译好的GDAL库,支持ECW格式,支持proj,支持geos

    这几天因为工作需要,把GDAL重新编译了一下,现支持ECW格式,即可以用GDALOPEN读取JPEG2000格式的影像数据;编译时也添加了对geos和proj的支持. 内含3个文件夹,分别是gdal, ...

  9. [Python] 中文路径和中文文本文件乱码问题

    情景: Python首先读取名为log.txt的文本文件, 其中包含有文件名相对路径信息filename. 随后Python调用shutil.copy2(src, dst)对该filename文件进行 ...

最新文章

  1. 为什么说「中台」程序员未来会最值钱?
  2. 二叉树中序遍历-递归与非递归
  3. 佐治亚理工学院计算科学与工程系博士生招生!
  4. [译]在启用浏览器功能的INFOPATH表单中实现基于SQL SERVER的多级联动的下拉式列表...
  5. Java IO: Buffered和Data
  6. ios 数字键盘左下角添加按钮_iOS8数字键盘加左下角完成button
  7. 【POJ - 1523】SPF(Tarjan求割点,求分割成的连通块数,模板题,tricks)
  8. 重构碎片化知识_荐书|《重构:数字化转型的逻辑》
  9. 给出年、月、日,计算该日是该年的第几天
  10. python基础7-函数
  11. 数据结构设计_数据结构设计之实现 Trie (前缀树)[Sumatran Rhinoceros]
  12. Authorware 函数说明
  13. 产品读书《自控力:斯坦福大学最受欢迎的心理学课程》
  14. hive 求两个月之间的时间间隔(月留存)
  15. SQL DROP TABLE语句概述
  16. chrome18-使用network waterfall分析页面载入性能
  17. 逆向看C++ new申请堆对象的构造,析构函数调用
  18. 电脑快捷键大全详细-基础
  19. 「自控原理」5.1 频率特性及其图示
  20. C#入门4——计算自由落体运动

热门文章

  1. c语言N*N的二维数组,c语言高手帮个忙(请先看问题,好解答
  2. mysql怎么创建表视频教程_mySQL学习入门教程——2.创建表
  3. mysql8.0.12密码_mysql8.0.12如何重置root密码
  4. Open3d学习计划—高级篇 3(点云全局配准)
  5. 波普艺术比较适合团队活动宣传海报设计风格,除了波普还有其他哪些艺术流派值得我们学习呢?
  6. 在CentOS 7.7 x86_64上安装python3.7.7
  7. Linux下使用diff和patch制作及打补丁(已经实践可行!)
  8. UE虚幻引擎:建筑可视化学习教程 Unreal Engine : Architectural Visualization
  9. Overall Comparision With WCDMA
  10. 第八章 泛型程序设计