如何获取 ImageReader 的 Base64 编码内容?
如何通过 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());
How do I read an image into a base64 encoded string by its ImageReader
?
Here's example source code using HtmlUnit. I want to get the base64 String of img
:
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());
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
HtmlUnit 的
HtmlImage#getImageReader ()
返回 < code>javax.imageio.ImageReader 是标准 Java 2D API。您可以获得BufferedImage
中,您可以使用
ImageIO#write( )
。Apache Commons Codec 有一个
Base64OutputStream
您可以装饰您的OutputStream
与。或者如果你想直接将其写入文件:
The HtmlUnit's
HtmlImage#getImageReader()
returnsjavax.imageio.ImageReader
which is part of standard Java 2D API. You can get anBufferedImage
out of it which you in turn can write to anOutputStream
of any flavor usingImageIO#write()
.The Apache Commons Codec has a
Base64OutputStream
which you can just decorate yourOutputStream
with.Or if you want to write it to file directly:
我不太确定你到底想要什么。
但是创建您自己的包含 Base64 内容的 Reader(请参阅 javax.imageio.stream.ImageInputStreamImpl)怎么样?
也许这个外部免费Base64Encoder可以帮助你。
到底有什么东西可以这么用?
I'm not quite sure what exactly you want.
But what about creating your own Reader (see javax.imageio.stream.ImageInputStreamImpl), containing the Base64-stuff?
Maybe this external free Base64Encoder can help you out.
Something that could be used like this in the end?
您可以使用 encodeBase64 方法之一
来自 apache commons 编解码器。
并使用 String(bytes[]) 构造函数从结果字节数组创建一个字符串。
You could use one of the encodeBase64 methods
from apache commons codec.
and create a string from the resulting byte array using the String(bytes[]) constructor.