当前位置: 代码迷 >> 综合 >> gdal 的JPEG Driver无法Create Dataset的问题
  详细解决方案

gdal 的JPEG Driver无法Create Dataset的问题

热度:22   发布时间:2023-12-21 06:52:44.0

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





  相关解决方案