使用如下代碼新建一個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);