IDEA下JAVA 调用GDAL读写tif文件

假设你已经安装好java jdk,并配置好环境变量。 参考: (编译java版gdal)

这里使用的是编译好的gdal,下载地址: 选择win32/x64版的zip,解压到相关目录下。 配置java中的jre library path,将下载后的E:workspace elease-1600-x64-gdal-1-11-1-mapserver-6-4-1in目录下的所有.dll文件 copy 到java/jre/bin下。 同时将E:workspace elease-1600-x64-gdal-1-11-1-mapserver-6-4-1ingdaljava目录下的所有.dll文件 copy到/java/jre/bin下 如图:包含五个文件 在IDEA下新建一个maven工程,将解压后的gdal.jar加到library中如图: 下面新建一个java class 并编写程序测试gdal的调用是否成功,代码如下 (可参考:) package org.geotools; import org.gdal.gdal.Band; import org.gdal.gdal.Dataset; import org.gdal.gdal.Driver; import org.gdal.gdal.gdal; import org.gdal.gdalconst.gdalconstConstants; public class ReadGeoInfo{ /** * Created by ubuntu on 2015/7/10 0010. */ public static void main(String[] args) { String fileName_tif = “F:RASTER DATADataAmberg_tif90162.tif”; gdal.AllRegister(); Dataset hDataset = gdal.Open(fileName_tif, gdalconstConstants.GA_ReadOnly); if (hDataset == null) { System.err.println(“GDALOpen failed - ” + gdal.GetLastErrorNo()); System.err.println(gdal.GetLastErrorMsg()); System.exit(1); } Driver hDriver = hDataset.GetDriver(); System.out.println(“Driver: ” + hDriver.getShortName() + “/” + hDriver.getLongName()); int iXSize = hDataset.getRasterXSize(); int iYSize = hDataset.getRasterYSize(); System.out.println(“Size is ” + iXSize + “, ” + iYSize); Band band = hDataset.GetRasterBand(1); int buf[] = new int[iXSize]; for(int i=0; i<10; i++) { band.ReadRaster(0, i, iXSize, 1, buf); for(int j=0; j<10; j++) System.out.print(buf[j] + “, “); System.out.println(“ ”); } hDataset.delete();

}

} 按shift+F10 运行,结果如下: 自此,java调用GDAL库读取tif文件实现。

备注: 如果你用的是eclipse开发的,也是一样的方法,新建Java project 然后在build path中将jar加入到library里,如果你没有配置GDAL的.dll库到java中,每次新建java project你都需要将上述的.dull copy 到工程的目录下才可以。

经验分享 程序员 微信小程序 职场和发展