在数组Java中加载图像

时间:2011-12-22 14:28:02

标签: java javax.imageio

哪种方法可以在阵列中存储图像?我正在使用ImageIO,我现在希望将它们存储在一个数组中。

2 个答案:

答案 0 :(得分:4)

PixelGrabber就是你想要的。

Image img = null;
try {
    img = ImageIO.read(new File("img.png"));
} catch (IOException e) {
    e.printStackTrace();
}
int w = img.getWidth(null);
int h = img.getHeight(null);
int[] pixels = new int[w * h];
PixelGrabber pg = new PixelGrabber(img, 0, 0, w, h, pixels, 0, w);
try {
    pg.grabPixels();
} catch (InterruptedException e) {
    System.err.println("interrupted waiting for pixels!");
    return;
}
if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
    System.err.println("image fetch aborted or errored");
    return;
}
for (int i = 0; i < pixels.length; i++)
    System.out.println(pixels[i]);

答案 1 :(得分:3)

如果您在内存中阅读了整个图片,可以将它们存储在List<byte[]>List<BufferedImage>中。

否则,您只需将其路径存储为List<String>

如果您确实需要数组,可以使用BufferedImage[]或使用list.toArray(..)