HtmlUnit 的HtmlImage#getImageReader()
返回javax.imageio.ImageReader
是标准Java 2D API的一部分。你可以从中得到一个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);