Java BufferedImage au format PNG Base64 String

Que j'essaie de faire une capture d'écran de sortie comme une chaîne encodée en base64, mais pas très loin. Le code je l'ai utilise un codage Base64 de la bibliothèque ( 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");

Chaque fois que je lance ce, "résultat" est toujours une chaîne vide, mais je ne comprends pas pourquoi. Des idées?

Remarque: je ne veux pas avoir à écrire de la png à un fichier sur le disque.

source d'informationauteur user72003