将2D数组值直接放入图像并根据这些值制作像素然后放入它之间的区别

时间:2013-01-14 07:31:53

标签: java awt

我是数字图像处理领域的初学者。现在我正在编码从2D数组中获取图像...我已经下载了这两个代码示例...当我使用第一个时我得到了正确的图像,但是当我使用第二个时我正在处理与前一个相比亮度更高的图像。

请建议我这些代码之间的区别是什么,以及我应该参考哪些代码......我必须使用此代码来获取我的研究论文结果......

1)。

 public BufferedImage getImage(BufferedImage original, float paddedArray[][], int width, int height) {

        BufferedImage img = new BufferedImage(width, height, original.getType());
        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {
                int c = Math.round(paddedArray[i][j]);
                int pixel = c << 16 | c << 8 | c;
                img.setRGB(i, j, pixel);
            }
        }
        return img;
    }

2)。

public BufferedImage getImages(BufferedImage original, float paddedArray[][], int width, int height) {

    BufferedImage img = new BufferedImage(width, height, original.getType());
    Graphics2D g = (Graphics2D) img.getGraphics();
    for (int i = 0; i < width; i++) {
        for (int j = 0; j < height; j++) {
            int c = Math.round(paddedArray[i][j]);
            if (c >= greyRange) {
                c = greyRange - 1;
            }
            g.setColor(new Color(c, c, c));
            g.fillRect(i, j, 1, 1);
        }
    }
    return img;
}

我使用的这些代码我只想知道它们之间的区别 g.setColor(new Color(c, c, c));img.setRGB(i, j, pixel);

0 个答案:

没有答案