使用如下代码新建一个JPEG的Driver,并Create一个相应的Dataset,出现问题:
Driver drijpg = Gdal.GetDriverByName("JPEG");
Dataset dout = drijpg.Create(pathBox.Text.Replace(".tiff", ".jpg"), ds.RasterXSize / 10, ds.RasterYSize / 10, 3, DataType.GDT_Byte, null);
报的错误为:no create method implemented for this format 该格式没有实现Create方法
查了一下网上的资料,提到了该格式只能使用CreateCopy方法来新建,所以换了一种实现方法,先建立一个内存的Driver,将数据写到这里面,再根据这个CreateCopy一个JPG
Driver drijpg = Gdal.GetDriverByName("JPEG");
Driver drimen = Gdal.GetDriverByName("MEM");
Dataset dout = drimen.Create(pathBox.Text.Replace(".tiff", ".jpg"), ds.RasterXSize / 10, ds.RasterYSize / 10, 3, DataType.GDT_Byte, null);
int[] desBands = new int[]{1,2,3};
dout.WriteRaster(0, 0, ds.RasterXSize / 10, ds.RasterYSize / 10, rawData, ds.RasterXSize / 10, ds.RasterYSize / 10, 3, desBands, 0, 0, 0);
drijpg.CreateCopy(pathBox.Text.Replace(".tiff", ".jpg"), dout, 1, null, null, null);