【发布时间】:2014-11-01 01:37:03
【问题描述】:
我一直在谷歌上搜索“Java 位图”、“创建 Java 位图”等内容,但似乎找不到太多信息。从所有代码示例看来,所有位图库都是第三方的或用于 android 的。
我想做的很简单。我想创建一个可能为 10x80 的小位图,并且能够在 (x,y) 处为每个像素着色。我想做一个小的我猜颜色条,它将按颜色显示队列中项目的位置。
是否有任何构建库可以做到这一点?
【问题讨论】:
我一直在谷歌上搜索“Java 位图”、“创建 Java 位图”等内容,但似乎找不到太多信息。从所有代码示例看来,所有位图库都是第三方的或用于 android 的。
我想做的很简单。我想创建一个可能为 10x80 的小位图,并且能够在 (x,y) 处为每个像素着色。我想做一个小的我猜颜色条,它将按颜色显示队列中项目的位置。
是否有任何构建库可以做到这一点?
【问题讨论】:
有java.awt.image.BufferedImage 类。这具有特定于像素的 get/set 方法。
http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html
【讨论】:
VolatileImages 即使在修改像素时也是硬件加速的。
这是一个使用 BufferedImage 创建和写入像素的示例:
BufferedImage image = new BufferedImage(10, 80, BufferedImage.TYPE_4BYTE_ABGR);
image.setRGB(5, 20, Color.BLUE.getRGB());
图片上的第三个参数是类型,根据你的使用情况可能会有所不同,但对于基本的纯色,显示的那个是好的。 setRGB 使用颜色的 int 表示,因此您不能直接使用 Color 常量。
您可能不想使用 VolatileImage,因为它的好处在当前的 Java 实现中是可疑的。请参阅 this stackoverflow question 了解为什么它可能没有帮助。
查看the Oracle image turorial 以获得帮助。它解释了您的选择以及如何与它们进行交互。
【讨论】: