使用Java数组的热图图像
我有一个多维 int 数组,其中包含“0”或“1”。我想创建一个类似于热图的图像。具有“0”的元素将具有一种颜色,而具有“1”的元素将具有另一种颜色。 例如,
int [][] test = {{0,0,1}, {1,1,0}, {1,1,1}}
我会得到“3 x 3”的图像,有点像这样。
wwr
rrw
rrr
其中white表示白色,r表示红色。
感谢您的任何建议。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
setRGB()
或BufferedImage
对此效果很好。 此处引用的示例使用SwingWorker
,以及这个 示例使用Runnable
线程。The
setRGB()
orgetRaster()
methods ofBufferedImage
work well for this. The examples cited here useSwingWorker
, and this example uses aRunnable
thread.查看 Java2D。
基本上你想为像素颜色创建一个 2d int 数组并将它们绘制到图像上。查看 Graphics 和 Graphics2D 对象以及 BufferedImage 等。然后使用 Java ImageIO 将图像写入文件。
Have a look at Java2D.
Basically you want to create a 2d int array for the pixel colors and draw those to an image. Look at the Graphics and Graphics2D objects as well as BufferedImage and the like. Then use Java ImageIO to write the image to a file.
既然你的值都是 1 和 0,为什么不使用二维布尔数组呢?这将节省空间并使 if 语句更简单。
如果您愿意,您可以使用 Java 的 Graphics2D 包来绘制这些点!
这就是我喜欢设置 Graphics2D 实例的方式:
然后通过执行以下操作绘制图像:
并使用如下方法保存文件:
Seeing as your values are all 1's and 0's, why don't you use a 2-dimensional boolean array? This would save space as well as make the if statements simpler.
You can then use Java's Graphics2D package to draw these dots if you would like to!
This is how I like to set up my Graphics2D instance:
Then draw to the image by doing:
And save the file by using a method like this one: