在java中逐像素绘制图像

时间:2013-03-08 15:29:33

标签: java image

我没有进过图像处理。 我想在JAVA中读取.jpeg图像文件,并根据颜色值在画布上绘制像素。 即首先绘制所有黑色像素,然后绘制所有灰色像素,依此类推.....和最后的白色像素。

我还想在每个绘制的像素之间引入一个非常小的间隙,以便我可以看到图像是如何绘制的。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

这是一个简短的,精简的指令示例,可以帮助您入门。此代码分解图像中的RGB值。然后,您可以对数据执行任何操作。

public static BufferedImage exampleForSO(BufferedImage image) {
    BufferedImage imageIn = image;
    BufferedImage imageOut = 
    new BufferedImage(imageIn.getWidth(), imageIn.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
    int width = imageIn.getWidth();
    int height = imageIn.getHeight();
    int[] imageInPixels = imageIn.getRGB(0, 0, width, height, null, 0, width);
    int[] imageOutPixels = new int[imageInPixels.length];
    for (int i = 0; i < imageInPixels.length; i++) {
        int inR = (imageInPixels[i] & 0x00FF0000) >> 16;
        int inG = (imageInPixels[i] & 0x0000FF00) >> 8;
        int inB = (imageInPixels[i] & 0x000000FF) >> 0;

        if (  conditionChecker_inRinGinB  ){
            // bla bla bla
        } else {
            // yada yada yada
        }

    }
    imageOut.setRGB(0, 0, width, height, imageOutPixels, 0, width);
    return imageOut;
}