- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何通过 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/
我一整天都在阅读 SO 和 Oracle,以了解如何从 .jpg 图像中提取元数据(提取嵌入在 am 图像中的 GPS 数据)。我所处的环境没有太多第三方库的选择。 我偶然发现了 ImageIO、Im
我遇到了一个问题,我在使用 ImageReader 的同时还使用了一个用于显示相机输出的 SurfaceView。我已经像这样添加了 SurfaceView 本身和 ImageReader 的表面(并
我正在使用 javax.imageio.ImageReader 加载可能较大的图像对于 GUI 中的缩略图生成,以及当用户导航到不同的文件夹(在 Swing 线程上)时,我希望能够中断缩略图生成器的线
我有一些代码使用 ImageReader 类读取大量 TIF 图像。 imageReader 对象是最终对象,并在构造函数中创建。 synchronized(imageReader) { LO
我从动画 gif 中读取了分离的图像,我只需在 frames[i] 中对它们进行更改,然后将它们设置回文件并使用 writer 保存为新文件。 File file = new File("gi
我正在尝试在我的应用程序上实现一个 ImageReader,但我不知道为什么,他什么都不读。 List surfaces = new ArrayList(); Surface prev
我从动画 gif 中读取了分离的图像,我只需在 frames[i] 中对它们进行更改,然后将它们设置回文件并使用 writer 保存为新文件。 File file = new File("gi
我目前正在学习一个github项目ScreenCapture的代码,它可以捕获屏幕并在surfaceview中显示图像,这里是项目https://github.com/Charlesjean/andr
我有一个能够捕获屏幕内容的应用设置。但是,有时,我会从 aquireLatestImage 返回一个 null 值。 .文档说它将返回“如果没有可用的图像数据则为 null”。 我很想知道没有可用图像
我正在尝试使用 camera2 API 从相机捕获图像数据。我主要使用取自 android Capture2RAW 示例的代码。在完全停止之前,只有少数图像通过(即调用 onImageAvailabl
我正在尝试获取多张曝光时间不同的图片来执行我的HDR 算法。但是,我不知道如何在 Android camera2 API 和 ImageReader 中使用 captureBurst() 来保存文件。
我有一个 camera2 实现。当前的设置是,它使用纹理 View 表面来显示实际的相机 View ,并使用 ImageReader 表面来捕获图像。 现在我也想捕捉预览帧。所以我尝试添加一个新的 I
我将 ImageReader 与 Handler 结合使用,以便在背景中获取图像。但我得到: Fatal Exception: java.lang.IllegalStateException maxI
我正在使用 Android ImageReader 类从 MediaProjection.createVirtualDisplay 方法接收位图。 到目前为止,我的代码如下所示: mProjectio
我没有图像或图形方面的背景,所以请耐心等待 :) 我正在使用 JavaCV在我的一个项目中。在examples , 构建了一个 Frame,它有一个 certain size 的缓冲区. 在Andro
我正在尝试访问具有 21 帧的动画 GIF 图像,然后读取第 12 个(因为它从 0 开始?)帧。 import java.awt.image.BufferedImage; import java.i
我正在开发一个 Android 应用程序,我在其中使用 ImageReader 从 Surface 获取图像。当我在 Lollipop 版本中录制屏幕时,表面的数据是从 VirtualDisplay
我尝试实现示例代码片段以从 DicomObject 获取图像: import java.awt.image.BufferedImage; import java.io.BufferedOutputSt
如何通过 ImageReader 将图像读入 base64 编码的字符串? 这是使用 HtmlUnit 的示例源代码。我想获取img的base64字符串: WebClient wc = new W
我正在使用 Android 的 Camera2 API,我想对相机预览帧执行一些图像处理,然后在预览 (TextureView) 上显示更改。 从常见的 camera2video 示例开始,我在我的
我是一名优秀的程序员,十分优秀!