gdal 的JPEG Driver無法Create Dataset的問題

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





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章