问题标签 [image-reader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 创建 CaptureSession 后是否可以添加和删除 Surfaces?
我的代码中有两个 Surface,一个用于Encoder
流式传输surface
,另一个用于获取帧形式ImageReader
,我要做的是surface
在捕获会话运行时添加一段时间或删除表面。
android - 从 ImageReader 中的 MediaPlayer 获取帧
在我的应用程序中,我使用 camera2 API 来获取多个表面中的图像,并且效果很好。出于调试目的,我想将输入源从相机更改为文件视频,为此我正在使用 MediaPlayer。是否可以像相机一样从 mediaPlayer 获取帧?在我的测试中,我从 setOnImageAvailableListener 中只得到一个图像,之后不再调用它。
这是我定义表面的方式
我为每个表面使用不同的 mediaPlayer 实例,每个表面都有不同的分辨率。
在预览表面中,我可以毫无问题地看到视频。
android - ImageReader.acquireLatestImage 抛出异常
我正在尝试将 ExoPlayer 的输出渲染到 ImageReader:
有一些要求:
- 即使在 Android 处于睡眠状态(屏幕关闭)期间,ImageReader 也应接收 Exo 的渲染
- ExoPlayer 不会有任何“真实”的渲染表面,只有这个
imageReader.getSurface
.
现在, step0 是让它工作,但我无法达到它的原因:imageReader.acquireLatestImage()
抛出异常:
java.lang.UnsupportedOperationException:生产者输出缓冲区格式 0x7fa30c06 与 ImageReader 配置的缓冲区格式 0x1 不匹配。
我可以理解抛出消息,但我无法弄清楚0x7fa30c06
:
它应该意味着YCbCr_420_SP。但是这个常量已被弃用,并建议
改用 ImageFormat.NV21。(来源)
我尝试使用 NV21 初始化 ImageReader,但随后又发生了一次崩溃:
java.lang.RuntimeException:java.lang.IllegalArgumentException:不支持 NV21 格式
如何使用ImageReader
来从此播放器中获取静止图像?
image - apache 常见 IptcParser 中的 ImageReadException
我正在尝试使用 org.apache.commons.imaging.formats.jpeg.JpegImageParser 解析图像文件,但显然我收到 ImageReadException 消息“无效块大小:551954 > 65533”。我的理解是 JpegImageParser 只是一个包装器,它在下面使用 IptcParser ,甚至异常也是从0抛出的。
- 你能解释一下这里提到的块大小吗?
- 是否可以进行调整以增加允许的块大小限制(目前似乎是 65533)?
- 是否有任何替代解析器(开源)可用,我可能不必面对这样的问题?
android - Android MediaProjection - VirtualDisplay 和 ImageReader 的合适分辨率是多少?
我使用 MediaProjection api 以及 VirtualDisplay 和 ImageReader 来共享屏幕。下面是创建 VirtualDisplay 和 ImageReader 的方法:
并且在 OnimageAvailable 上接收到 rgba 原始字节:
到目前为止,一切都很好,并且框架可以毫无问题地渲染到表面视图上。但事情在这一点上变得有趣:
将宽高改为640 x 480后,效果好一点:
但如您所见,共享屏幕的纵横比有问题。最后,当我将宽度和高度更改为 768 * 1366 时,结果在某种程度上可以接受但
为什么当我为 Imageريالeader 和 VirtualDisplay 设置设备屏幕的宽度和高度时,共享屏幕损坏了?(对于这个设备:宽度=1080 高度=2400)
为什么当我设置高度大于宽度时,共享屏幕是好的?
在上一张图中,共享屏幕并没有覆盖整个目标 SurfaceView。如何为 VirtualDisplay 和 ImageReader 设置覆盖整个 SurfaceView 的分辨率?
python - 如何摆脱异常类:NoneType?
运行此程序时,我得到 Class "NoneType" 。我在从驱动器读取图像文件失败的地方。请纠正我。
android - 如何将 .png/.jpg 格式文件转换为 android.media.Image 对象?
我有一个 android 应用程序,并注意到它是 onImageAvailable(ImageReader imagereader) 函数,它在可用时从 ImageReader 获取图像并处理它们。我的目标是操纵该 Image 对象,以便它处理 png 文件,而不是从相机中获取该图像。所以,我想改变
类似于
可能吗?
android - 手机已重新加载(Android)
我有一个应用程序,它ImageReader
用Tesseract
. 它们连续工作并在 15-60 分钟后重新加载设备(在小米 Note 9T 上测试)。我有没有机会理解重新加载的原因?
使用分析器,我看不到可能导致重新加载的重大变化。
捕获方法
停止捕获
阅读文本的方法
任何提示或建议都适用。谢谢!
编辑
可能有人知道如何获取任何日志,为什么手机重新启动?
android-ndk - 调用 onImageAvailable 回调,但 acquireLatestImage 返回 NO_BUFFER_AVAILABLE
我正在使用Camera2 API在C的本机端连续拍照,它工作正常,除了有时在receivenf onImageAvailable回调之后,调用acquireLatestImage时,返回NO_BUFFER_AVAILABLE。根据 Android 文档:https ://developer.android.com/ndk/reference/struct/a-image-reader-image-listener#onimageavailable
请注意,调用 AImageReader_acquireNextImage 或 AImageReader_acquireLatestImage 可能会在此回调中返回 AMEDIA_IMGREADER_NO_BUFFER_AVAILABLE。例如,当有多个图像和回调排队时,如果应用程序调用 AImageReader_acquireLatestImage,一些图像将在其相应的回调执行之前返回给系统
有人可以解释一下这实际上何时会发生以及可能的解决方案。
android - 使用 EGL 和 openGL 渲染到大型 ImageReader 表面,无法渲染出 GL_MAX_VIEWPORT_DIMS 范围
我正在尝试在 Imagereader 的表面上使用 OpenGL ES 绘制一些东西。我为它创建了 EGL 上下文和表面。一切正常,当图像阅读器尺寸小于 GL_MAX_VIEWPORT_DIMS(我的设备上为 8192)时。我可以从它那里得到一张好照片。
但是当尺寸大于 8192 时,比如 8224,输出图像仍然留下一些填充无法绘制。这是输出图像。
即使我尝试使用 glViewport(0, 32, width, 8192),渲染结果也会向上偏移,但仍然不能超过 padding(8192~8224)。但是 glclear 命令可以使背景清晰到目标颜色(在我的例子中,它是红色)。
有没有办法在表面的填充部分绘制?
这是我的代码: