Java调用编译好的GDAL

it2026-08-09  2

转载来源

Java 调用 GDAL,使用编译好的库方法,获取 tif 文件信息及 tif 波段信息 https://www.pianshen.com/article/8695336579/

参考上文进行了试验。下面为操作步骤。

1.下载文件

到这里下载:https://www.gisinternals.com/release.php

解压得到:

2.复制到jdk

事先配置好jdk的环境变量(略)。

进入上面的bin文件夹:

把里面所有dll后缀的文件,全部复制到java的jdk里面的bin文件夹里面。在上面的bin文件夹里面有个叫做gdal的文件夹,进入后可以看到一个叫做java的文件夹,继续进入,把里面的那个dll文件也复制到java的jdk里面的bin文件夹里: 可以看到上面还有一个gdal.jar,在下文的例子中,会把它复制到工程目录中使用。

3.例子

以VScode编辑器为例(eclipse、IDEA等其他编辑器同理),使用前面配置好的gdal读取一个tif图片。(我用的是jdk1.8) 例子的代码如下:

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 Hello { public static void main(String[] args) { gdal.AllRegister(); String fileName_tif = "G:\\TEMP2\\scene.tif"; 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()); System.out.println("Size is " + hDataset.getRasterXSize() + ", " + hDataset.getRasterYSize()); Band band = hDataset.GetRasterBand(1); System.out.println(band.getXSize()); hDataset.delete(); // 可选 gdal.GDALDestroyDriverManager(); } }
最新回复(0)