Java - Как бы я загрузить черно-белое изображение в двоичный файл? - PullRequest
2 голосов
/ 08 мая 2011

Я использую Java с колебанием в режиме FSE. Я хочу загрузить полностью черно-белое изображение в двоичный формат (предпочтительно 2-мерный массив) и использовать его для обнаружения столкновений на основе пикселей по маске. Я даже не знаю, с чего начать, я исследовал в течение последнего часа и не нашел ничего уместного.

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Просто прочитайте его в BufferedImage, используя ImageIO#read() и получите отдельные пиксели на BufferedImage#getRGB(). Значение 0xFFFFFFFF - белый, а остаток - цветной. Предполагая, что вы хотите представить белый цвет в виде байта 0 и цвет (черный) в виде байта 1, приведем следующий пример:

BufferedImage image = ImageIO.read(new File("/some.jpg"));
byte[][] pixels = new byte[image.getWidth()][];

for (int x = 0; x < image.getWidth(); x++) {
    pixels[x] = new byte[image.getHeight()];

    for (int y = 0; y < image.getHeight(); y++) {
        pixels[x][y] = (byte) (image.getRGB(x, y) == 0xFFFFFFFF ? 0 : 1);
    }
}

Смотри также:

1 голос
/ 08 мая 2011

Если вы читаете изображение с URL-адреса, оно уже будет в двоичном формате.Просто скачайте данные и игнорируйте тот факт, что это изображение.Код, который участвует в загрузке, в конце концов, его не волнует.Предполагая, что вы хотите записать его в файл или что-то подобное, просто откройте URLConnection, откройте FileOutputStream и несколько раз считывайте из потока ввода из Интернета, записывая прочитанные вами данные в поток вывода.

Вы также можете использовать ImageIO, если не загружаете его с какого-либо ресурса.

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