Массив байтов к Объекту изображения

В XCode в настоящее время нет такого рефакторинга.

, Если Вы хотели бы его, зарегистрируйте запрос улучшения .

53
задан VGR 12 October 2017 в 10:18
поделиться

4 ответа

BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes));
87
ответ дан 7 November 2019 в 08:31
поделиться

Если вы знаете тип изображения и хотите только создать файл, нет необходимости получать экземпляр BufferedImage. Просто запишите байты в файл с правильным расширением.

OutputStream out = null;

try {
    out = new BufferedOutputStream(new FileOutputStream(path));
    out.write(bytes);
} finally {
    if (out != null) out.close();
}
23
ответ дан 7 November 2019 в 08:31
поделиться

Поскольку похоже, что вы уже знаете, в каком формате находится массив byte [] (например, RGB, ARGB, BGR и т. Д.), Вы можете использовать BufferedImage.setRGB (. ..) или комбинацию BufferedImage.getRaster () и WritableRaster.setPixels (...) или WritableRaster.setSamples (...) . К сожалению, оба этих метода требуют, чтобы вы преобразовали ваш byte [] в один из int [], float [] или double [] в зависимости от формата изображения.

2
ответ дан 7 November 2019 в 08:31
поделиться

Согласно документации Java, похоже, вам нужно использовать класс MemoryImageSource , чтобы поместить массив байтов в объект в памяти, а затем использовать Component.createImage ( ImageProducer) далее (передавая ваш MemoryImageSource, который реализует ImageProducer).

1
ответ дан 7 November 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: