使GDAL库支持中文路径或中文文件名的处理方法
之前生成的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库支持中文路径或中文文件名的处理方法相关推荐
- GDAL C#中文路径,中文属性名称乱码问题
昨天写的博客,将C#读取shp中文属性值乱码的问题应该可以解决,博客地址为:http://blog.csdn.net/liminlu0314/article/details/54096119,然后又测 ...
- cv2.imread无法读取/保存中文路径下的图片的解决方法
cv2.imread无法读取/保存中文路径下的图片的解决方法 关于无法读取 用cv2.imread读取中文路径下的图片会出现空.这种情况下windows会出现,mac好像还没出现过. 解决方法是,使用 ...
- python图片(带有中文路径和中文名称的)读写
import cv2 import numpy as np import os # 读带有中文路径和中文名称的图片 def cv_imread(file_path):cv_img = cv2.imde ...
- 修改GDAL库支持RPC像方改正模型
最近在做基于RPC的像方改正模型,方便对数据进行测试,修改了GDAL库中的RPC纠正模型,使之可以支持RPC像方改正参数. 下面是RPC模型的公式,rn,cn为归一化之后的图像行列号坐标,PLH为归一 ...
- 修改GDAL库支持IRSP6数据
使用GDAL库发现不能打开IRSP6的数据,不过看GDAL提供的文件格式里面却是支持IRSP6的数据的,具体可以参考网页http://www.gdal.org/frmt_fast.html.下面图1是 ...
- 中文路径_中文分词的原理、方法与工具
海德格尔说"词语破碎处,无物可存在".中文句子不像英文那样的词与词之间有显示空格边界,使得词和词组边界模糊. 为了让计算机更容易理解文本,通常中文信息处理的第一步是中文分词.中文分 ...
- 英文版系统的 IIS支持中文路径及中文文件名
按迷信的说法是: 按时辰分析吉凶 子时:23点--01点前 左眼:意外之喜降临,会有不错好运,你的心脏要强一点,别兴奋过了头. 右眼:有人请你吃饭,可以省下一笔钱,但是这个人的目的不明,你要多多斟酌. ...
- 编译好的GDAL库,支持ECW格式,支持proj,支持geos
这几天因为工作需要,把GDAL重新编译了一下,现支持ECW格式,即可以用GDALOPEN读取JPEG2000格式的影像数据;编译时也添加了对geos和proj的支持. 内含3个文件夹,分别是gdal, ...
- [Python] 中文路径和中文文本文件乱码问题
情景: Python首先读取名为log.txt的文本文件, 其中包含有文件名相对路径信息filename. 随后Python调用shutil.copy2(src, dst)对该filename文件进行 ...
最新文章
- bread是可数还是不可数_小学英语语法名词 不可数名词详解
- Centos7手动安装OpenStack Mitaka版本--KeyStone安装
- java的准动态(反射)
- OpenGL绘制一个三角形的实例
- [译]GC专家系列1:理解Java垃圾回收
- mysql分析sql语句性能_sql语句执行性能分析
- 前端学习(2020)vue之电商管理系统电商系统之完成商品添加操作
- 动手学无人驾驶(6):基于IMU和GPS数据融合的自车定位
- php输出mysql的数据结构_php课程 13-43 mysql的数据结构是什么
- UVA 12904 Load Balancing 暴力
- golang日志服务器_golang 写日志到syslog
- java写ev3程序_EV3程序(一)直行
- C语言 打地鼠游戏 超级详解,各个函数与算法,设计思路与流程
- 百度bae定时任务使用方法
- 怎么进行finebi下载
- 让你的微信小程序对用户更加友好:上拉加载和下拉刷新就是关键
- 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...
- 计算机桌面壁纸怎么来回换,我的电脑为什么在总是自动换桌面壁纸???
- hadoop jar xxxx.jar 执行的流程
- JavaScript高级 ES7-ES13 新特性
热门文章
- PCLPCL/OpenNI tutorial 2: Cloud processing (basic)
- 和12岁小同志搞创客开发:手撕代码,做一款密室自动门
- python字符串基本形式_python字符串常用方式
- 【全网之最】JavaScript中字符串以特定字符分隔开之后,获取最后一个分割出来的字符串,多用于获取文件的后缀名(格式)
- Ubuntu18.04 ROS Melodic安装全过程整理
- Unity 3D游戏开发学习教程
- Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games
- 藤摇椅游戏道具制作全流程讲解视频教程
- 深入理解ceph-disk prepare 源码逻辑
- visual-reasoning 笔记