在Java中如何将反映高程的数组转换成BufferedImage

1. 简介

若将反映高程信息的数组以图像的形式呈现在JPanel中时,需要将相应的数组转换成BufferedImage类型的变量,而后将BufferedImage类型变量绘制在JPanel中。

假设数据为整数数组,int[][] imageData,其列数与行数分别为width_Image与height_Image,将其转换为BufferedImage类型变量imageBackground。

2. 实现

首先,以参数width_Image与height_Image定义imageBackground

BufferedImage imageBackground = 
    new BufferedImage(width_Image, height_Image, BufferedImage.TYPE_INT_RGB);

然后,采用双重循环遍历imageBackground的各点,并根据对应的imageData的元素值,将相对应的RGB值赋值给imageBackground的相应元素。

ColorMap cmap = new ColorMap(0, 6000);
cmap.demcmap(256);
for (int wn = 0; wn < width_Image; wn++){
	for (int hn = 0; hn < height_Image; hn++) {
		imageBackground.setRGB(wn, hn, cmap.getRGB(imageData[wn][hn]));
	}
}

注意,这里的ColorMap为自定义的色彩类,用于说明不同高度对应的RGB值。ColorMap(0, 6000)表示只对高程位于0~6000 米区间的高程进行颜色赋值。

关于被赋值颜色的高程区间范围,可根据实际获取的最大最小高程来确定。

你可能感兴趣的:(电磁波覆盖范围分析,数据结构,java)