Я пытаюсь получить вывод скриншота в качестве кодированной в base64 строки, но не очень далеко. Код, который я использовал до сих пор, использует библиотеку Base64 (http://iharder.sourceforge.net/current/java/base64/):
Robot robot = new Robot();
Rectangle r = new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() );
BufferedImage bi = robot.createScreenCapture(r);
ByteArrayOutputStream os = new ByteArrayOutputStream();
OutputStream b64 = new Base64.OutputStream(os);
ImageIO.write(bi, "png", os);
ByteArrayOutputStream out = new ByteArrayOutputStream();
out.writeTo(b64);
String result = out.toString("UTF-8");
Каждый раз, когда я запускаю это, "результат" всегда является пустой строкой, но я не понимаю, почему. Любые идеи?
Примечание. Я не хочу писать png в файл на диске.