我想绘制一个位图,手动指定它的每个点的颜色(换句话说,任务是将RGB值的二维数组保存到PNG(或其他一些无损真彩色位图格式)文件)。
如果有一个函数可以在给定坐标处的图像顶部打印一些文本(给定大小的给定字体),这也很不错。
如何实现这个?
答案 0 :(得分:7)
您可以使用Java标准库ImageIO
类。它提供静态write
方法,例如,可以将RenderedImage
编码并写入PNG格式的输出流。对于RenderedImage
,您可以轻松使用BufferedImage
类。它提供了setRGB
方法,用于直接操作各个像素的颜色。或者,您也可以调用BufferedImage.getGraphics()
,它返回Graphics
的实例,您可以在其上绘制任何形状或文本,甚至是整个GUI组件,就像使用任何AWT组件一样。
这是常规Java的东西。 Scala没有为此提供任何特殊包装,我也怀疑它是值得的。
答案 1 :(得分:2)
您应该使用诸如Java Advanced Imaging API之类的java库。这是有据可查的。