问题标签 [android-capture]
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.
android - 如何在Android中不按捕获按钮自动捕获和保存图像?
我正在使用 Android 5.0 来实现一个应用程序,该应用程序允许自动捕获图像并将其保存到我的手机中。目前,我正在使用下面的代码,但它需要在我手机的捕获 UI 中按下捕获按钮。是否可以在不按捕获按钮的情况下捕获并保存图像?比如我只是调用这个函数myCaptureandSave()
,然后手机会显示 Capture UI 并在中间捕获图像并保存,我不需要做更多的步骤。
android - 如何设置相机捕获请求的旋转?
我正在使用 ndk 创建通过相机捕获并显示图像的应用程序。我成功捕获并显示图像,但图像旋转不正常。因此,我尝试使用 ACaptureRequest_setEntry_u8 函数来更改图像的旋转。但它会在 logcat 中返回此错误消息(E/ACameraMetadata: Error: tag 917518 is not writable!)。我试图检查 ACamera_SENSOR_ORIENTATION 是否包含在 ACameraMetadata 中,并且确实如此。下面是代码。我用了两天时间来纠正这个问题。请帮我。
我正在使用 ACameraCaptureSession_setRepeatingRequest 顺序捕获。
android - Android Camera2:使用 captureBurst 的图像捕获之间的更新 UI 不同步
我正在尝试使用captureBurst()
方法在 Android 上使用 Camera2 API 捕获图像。我在按钮中开始突发捕获OnClickListener
:
在我的OnImageAvailableListener
听众中,我正在读取捕获的图像,保存并关闭。在这一点上,我想在我的屏幕上显示一些东西,我想在连拍序列中的每个捕获的图像之间显示一些东西。所以我写了这段代码:
为了测试它并确保这确实发生了,我正在使用我的前置摄像头,并在我的设备上方放置一面镜子,以便摄像头实际捕获应用程序的显示。不幸的是,显示和捕获不同步。我已经尝试将 10 个相同ImageRequests
的captureBurst
方法放在方法中,但是当我查看获得的图像时,前三个是相同的(显示仍然显示初始数字 0),但其余的都很好(显示正在同步变化)。为什么不能全部同步,即为什么前几张图像几乎同时拍摄(在连拍开始时),而其他的都很好?
我创建ImageReader
了最多 1 个图像,以便一次不捕获多个图像:
并且使用模式RequestBuilder
创建TEMPLATE_PREVIEW
以最大化捕获屏幕。
我知道capture
每次在OnImageAvailableListener
侦听器中捕获新图像时我都可以调用方法,这是有效的(经过测试!)。但我需要让我的应用程序以尽可能快的速度捕获图像。
有什么帮助吗?
已编辑:这是@alex-cohn 建议的我的日志:
编辑2:
我已经设法为每个显示的数字获得一张图像,但是每次捕获一张图像后我都会丢弃两张图像,即:
在这里,frameDrop
设置为 3。此外,maxImages
在创建 imageReader 时也设置为 3。我已经在另一台当时正在拍摄 2 张图像的设备上对其进行了测试,所以在该设备的情况下,我必须设置frameDrop
和maxImages
2 . 这样做的缺点是它仍然有点慢,毕竟它是以连拍模式拍摄的每三(第二)张图像,这不是您使用captureBurst
方法时想要的东西。
我仍然不太明白为什么会这样工作,以及为什么相机会以成对或三胞胎的形式拍摄图像。