灰度图像

时间:2010-02-07 10:09:00

标签: java image

使用Java保存灰色图像时仍然存在问题。我怎么能这样做? 格式不是那么重要,但应该没有图像压缩。

有谁知道吗?

1 个答案:

答案 0 :(得分:3)

这可能不是最优雅的方法,但它会起作用:

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,之前为g,前一个为r)。由于您的图像是灰度图像,因此您可以简单地为图像使用相同的r,g和b值,这就是您可以简单地执行此操作的原因:

int colorValue = grayscale | grayscale << 8 | grayscale << 16;