Загрузка изображений в массив Java - PullRequest
1 голос
/ 22 декабря 2011

Каков наилучший способ хранения изображений в массиве?Я использую ImageIO и теперь я хочу сохранить их в массиве.

Ответы [ 2 ]

4 голосов
/ 22 декабря 2011

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]);
3 голосов
/ 22 декабря 2011

Если вы прочитали все изображения в памяти, вы можете сохранить их в List<byte[]> или List<BufferedImage>.

В противном случае вы можете просто сохранить их пути как List<String>.

Если вам действительно нужен массив, вы можете вместо этого использовать BufferedImage[] или list.toArray(..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...