gpt4 book ai didi

java - 如何获取 ImageReader 的 base64 编码内容?

转载 作者:行者123 更新时间:2023-11-30 07:36:58 25 4
gpt4 key购买 nike

如何通过 ImageReader 将图像读入 base64 编码的字符串?

这是使用 HtmlUnit 的示例源代码。我想获取img的base64字符串:

  WebClient wc = new WebClient();
wc.setThrowExceptionOnFailingStatusCode(false);
wc.setThrowExceptionOnScriptError(false);
HtmlPage p = wc.getPage("http://flickr.com");
HtmlImage img = (HtmlImage) p.getByXPath("//img").get(3);
System.out.println(img.getImageReader().getFormatName());

最佳答案

HtmlUnit 的 HtmlImage#getImageReader()返回 javax.imageio.ImageReader这是标准的一部分 Java 2D API .你可以获得 BufferedImage从中你可以使用 ImageIO#write() 写入任何类型的 OutputStream .

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);

关于java - 如何获取 ImageReader 的 base64 编码内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3068543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com