灰度图像
答
这可能不是最优雅的方法,但它的工作:
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageTest {
public static void main(String[] args) throws IOException {
int width = 10 // width of your image
int height = 10 // height of your image
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; ++x)
{
for (int y = 0; y < height; ++y)
{
int grayscale = ... // get your greyscale value 0..255 from your array here.
int colorValue = grayscale | grayscale << 8 | grayscale << 16;
img.setRGB(x, y, colorValue);
}
}
ImageIO.write(img, "png", new File("output.png"));
}
}
的colorValue由R,G,和B(B上的最低字节,克一个在此之前的,和r之前的一个)。由于您的图像灰度,你可以简单地使用你的图像相同的R,G和B值,所以这就是为什么你可以简单地做:
int colorValue = grayscale | grayscale << 8 | grayscale << 16;
对于此类RGB操纵下面的符号是更为常见(我认为这很容易理解'底层'的情况):grey SyntaxT3rr0r 2010-02-07 10:43:12
正确,好点,这更容易理解。我调整了我的例子。 – amarillion 2010-02-07 13:26:03
只是一个注释,如果你想要Alpha通道,你应该使用TYPE_INT_ARGB,并且将aloha字节的值转换为 medopal 2010-02-07 14:52:05