Если вы знаете тип изображения и хотите генерировать файл, вам не нужно получать экземпляр BufferedImage. Просто напишите байты в файл с правильным расширением.
OutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(path));
out.write(bytes);
} finally {
if (out != null) out.close();
}
В соответствии с документами Java, похоже, вам нужно использовать класс MemoryImageSource, чтобы поместить ваш байтовый массив в объект в памяти, а затем используйте Component.createImage(ImageProducer) next (передача в ваш MemoryImageSource, который реализует ImageProducer).