GDAL从二进制数据流中构造数据集的实例
目录
1. 概述
2. 实现
参看《从二进制数据流中构造GDAL可以读取的图像数据》这篇文章。这个问题的内涵在于,处理图像时都会将其读取成宽X高X波段的三维数组的内存Buffer,但是图像文件本身却会被压缩成各种各样的数据类型(jpg、png、tif等)。在某些直接获取到数据流的情况下,可以直接在内存中构建GDAL数据集并进行读写操作,这样就可以避免磁盘IO的性能。
以个人的实际经验来看,有两个地方用到了这个功能:
从远端(Web)访问数据,可以先一次性获取到内存Buffer,然后在内存中构建GDAL数据集。
gltf的bin中内嵌了jpg/png图像文件,可以直接获取二进制文件流,然后在内存中构建GDAL数据集。
按照自己的使用习惯,试用了一下《从二进制数据流中构造GDAL可以读取的图像数据》的例子,基本没什么问题:
读取到的宽、高、波段以及深度:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnaugDNxkzMxcTN50SO2czMzkTNzIjMwETMxIDMy0CMxQDMwATMvwVMxEjMwIzLcBTM0ADMwEzLcd2bsJ2Lc12bj5ycn9Gbi52YuAjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
也可以进行进一步的读写操作。