哪种方法可以在阵列中存储图像?我正在使用ImageIO
,我现在希望将它们存储在一个数组中。
答案 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(..)