从二进制数据流中构造GDAL可以读取的图像数据(C#)
来源:互联网 发布:苹果cms模板下载 编辑:程序博客网 时间:2024/05/22 18:22
在上一篇博客中,讲了一下使用GDAL从文件流中构造一个GDAL可以识别的数据来进行处理。原以为这个接口在C#中没有,仔细看了下GDAL库中源码,发现C#版本也有类似的函数,下面是GDAL库中的一个C#使用示例代码。
using System;using System.IO;using System.Runtime.InteropServices;using OSGeo.GDAL;/// <summary>/// 一个基于C#语言的简单示例,使用内存文件/// </summary> class VSIMem{public static void usage() { Console.WriteLine("使用例子: vsimem [image file]");System.Environment.Exit(-1);} public static void Main(string[] args){if (args.Length != 1)//如果输入的参数不等于1,返回usage();byte[] imageBuffer; //定义一个buffer用来存储命令行输入的信息//将输入的信息写入buffer中using (FileStream fs = new FileStream(args[0], FileMode.Open, FileAccess.Read)){using (BinaryReader br = new BinaryReader(fs)){long numBytes = new FileInfo(args[0]).Length;imageBuffer = br.ReadBytes((int)numBytes);br.Close();fs.Close();}}//注册GDAL驱动Gdal.AllRegister();//构造内存文件名称,必须以/vsimem/开头string memFilename = "/vsimem/inmemfile";try{//从二进制流中构造内存文件Gdal.FileFromMemBuffer(memFilename, imageBuffer);//使用GDAL打开数据进行处理Dataset ds = Gdal.Open(memFilename, Access.GA_ReadOnly);Console.WriteLine("Raster dataset parameters:");Console.WriteLine(" RasterCount: " + ds.RasterCount);Console.WriteLine(" RasterSize (" + ds.RasterXSize + "," + ds.RasterYSize + ")");//将内存文件转存为一个GeoTiff文件Driver drv = Gdal.GetDriverByName("GTiff");if (drv == null){Console.WriteLine("Can't get driver.");System.Environment.Exit(-1);}drv.CreateCopy("sample.tif", ds, 0, null, null, null);}catch (Exception ex){Console.WriteLine(ex.Message);}finally{Gdal.Unlink(memFilename);}}}
0 0
- 从二进制数据流中构造GDAL可以读取的图像数据(C#)
- 从二进制数据流中构造GDAL可以读取的图像数据
- 从sqlite3中读取二进制数据
- Gdal库读取和生成图像数据
- gdal读取图像数据,构建gdi+显示
- 一种从数据流中按位 读取数据的方法。
- C#从数据库中读取二进制数据,并显示图片
- 存储、读取二进制的图像
- [学习笔记]二进制数据的处理(1) 普通二进制数据处理 B -------读取数据库中二进制数据
- 读取图像数据的C实现(.raw存储格式)
- QT中使用GDAL多线程读取遥感图像到QImage
- QT中使用GDAL多线程读取遥感图像到QImage
- GDAL读取HDF数据
- GDAL读取元数据
- C/C++ 图像二进制存储与读取
- C/C++ 图像二进制存储与读取
- 一个可以从excel中读取数据并生成xml的vba程序
- JavaScript (XMLHttpRequest) 读取二进制数据流
- project facet java 1.8 is not supported解决办法
- LeetCode | Binary Tree Level Order Traversal
- Apple Watch人机交互指南:UI设计基础--模态页面和布局
- 读书列表
- Service 服务
- 从二进制数据流中构造GDAL可以读取的图像数据(C#)
- xy理论
- Adobe AIR,Android 版
- OpenCV关于稀疏光流跟踪的演示程序以及一些错误提示
- 内核模块编程二
- 常用的 DOCTYPE 声明
- 第十三周 oj平台 统计元音字母个数
- 推荐给创业者看的书
- iOS文件管理