Hi Group, I just encountered an error in writting data to image in GTiff format using the OSGeo.GDAL.Gdal.Open command. The error message showing is "****.tif not recognised as a supported file format". The gdal librarary I am using is gdal19dev.dll. The weird thing is the Gdal.Open command worked if the image is in the format of HFA. The C# code I used to implement the writting process is attached below (the sentence where error happened was highlighted in red): /// <summary> /// Function of WriteData2File /// </summary> /// <param name="LCx">the column index of left corner</param> /// <param name="LCy">the row index of left corner</param> /// <param name="width">the width of the rectangle</param> /// <param name="height">the length of the rectangle</param> /// <param name="fileName">the fileName where the data will be saved</param> /// <returns>true, if the data is added correctly, false otherwise.</returns> public bool WriteData2File(int LCx, int LCy, int width, int height, int band, byte[] Data, string fileName) { OSGeo.GDAL.Driver imgDriver = OSGeo.GDAL.Gdal.GetDriverByName("GTiff"); string extension = System.IO.Path.GetExtension(fileName); if (extension == ".img") imgDriver = OSGeo.GDAL.Gdal.GetDriverByName("HFA"); if (imgDriver == null) throw new Exception("The file type is not supported!"); // OSGeo.GDAL.Gdal.AllRegister(); OSGeo.GDAL.Dataset ds = OSGeo.GDAL.Gdal.Open(fileName, OSGeo.GDAL.Access.GA_Update); int[] bandMap = new int[] { 1, 1, 1, 1 }; try { ds.WriteRaster(LCx, LCy, width, height, Data, width, height, 1, bandMap, 0, 0, 0); //ds.WriteRaster(LCx, LCy, width, height, Data, width, height, band, 0, 0, 0); ds.Dispose(); return true; } catch { return false; } }
Can anyone point out where the problem is? Thank you so much, -- Zhenyu Lu SUNY-ESF
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev