HtmlUnit HtmlImage#getImageReader()
возвращает javax.imageio.ImageReader
, который является частью стандартного Java 2D API .Вы можете получить BufferedImage
из него, который вы, в свою очередь, можете написать в OutputStream
любого аромата, используя ImageIO#write()
.
Кодек Apache Commons имеет 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);