標準Java 2D APIの一部であるHtmlUnit のHtmlImage#getImageReader()
戻り値。を使用して任意のフレーバーの に書き込むことができます。javax.imageio.ImageReader
BufferedImage
OutputStream
ImageIO#write()
Apache Commons Codecには、装飾Base64OutputStream
できる がありますOutputStream
。
HtmlImage img = (HtmlImage) p.getByXPath("//img").get(3);
ImageReader imageReader = img.getImageReader();
BufferedImage bufferedImage = imageReader.read(0);
String formatName = imageReader.getFormatName();
ByteArrayOutputStream byteaOutput = new ByteArrayOutputStream();
Base64OutputStream base64Output = new base64OutputStream(byteaOutput);
ImageIO.write(bufferedImage, formatName, base64output);
String base64 = new String(byteaOutput.toByteArray());
または、ファイルに直接書き込みたい場合:
// ...
FileOutputStream fileOutput = new FileOutputStream("/base64.txt");
Base64OutputStream base64Output = new base64OutputStream(fileOutput);
ImageIO.write(bufferedImage, formatName, base64output);