Java: формат BufferedImage to Bitmap

У меня есть программа, в которой я захватываю экран с помощью кода:

robot = new Robot();
BufferedImage img = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));

Теперь я хочу преобразовать этот BufferedImage в формат Bitmap и вернуть его через функцию для какой-либо другой необходимости. Не сохранять ее в файле. Любая помощь пожалуйста??

Ответ 2

Когда вы говорите "в формат битмапа", вы тогда подразумеваете данные (как в массиве байтов)? В этом случае вы можете использовать ImageIO.write (как указано выше).
Если вы не хотите сохранять его в файле, но хотите получить данные, можете ли вы использовать ByteArrayOutputStream следующим образом:

ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(img, "BMP", out);
byte[] result = out.toByteArray();

Ответ 3

Чтобы просмотреть типы изображений, доступные для записи в J2SE (например, JAI), см. ImageIO.getWriterFileSuffixes():

например.

class ShowJavaImageTypes {

    public static void main(String[] args) {
        String[] imageTypes =
            javax.imageio.ImageIO.getWriterFileSuffixes();
        for (String imageType : imageTypes) {
            System.out.println(imageType);
        }
    }
}

Выход

Для этого Sun Java 6 JRE в Windows 7.

bmp
jpg
wbmp
jpeg
png
gif
Press any key to continue . . .

См. аналогичные методы ImageIO для типов, форматов и соответствующих считывателей MIME.