文雅的跑步鞋 · sql 当前日期减一天前一天的数-掘金· 8 月前 · |
跑龙套的单杠 · Pycharm ...· 1 年前 · |
狂野的白开水 · powershell pipe ...· 1 年前 · |
眼睛小的领带 · Create and work with ...· 1 年前 · |
帅呆的篮球 · PyMuPDF 拼版(一)_pymupdf ...· 1 年前 · |
android 云系统 图像编码 图像尺寸 |
https://cloud.tencent.com/developer/information/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%AE%89%E5%8D%93%E7%B3%BB%E7%BB%9F%E4%B8%AD%E4%BD%BF% |
爱运动的灌汤包
4 天前 |
在安卓系统中使用Camera2接口进行多张照片的无预览拍摄,可以通过以下步骤实现:
<uses-permission android:name="android.permission.CAMERA" />
private CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) {
// 拍照完成后的回调处理
};
CameraManager cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = cameraManager.getCameraIdList()[0];
CameraDevice cameraDevice;
cameraManager.openCamera(cameraId, new CameraDevice.StateCallback() {
@Override
public void onOpened(@NonNull CameraDevice camera) {
cameraDevice = camera;
// 相机打开后的回调处理
@Override
public void onDisconnected(@NonNull CameraDevice camera) {
cameraDevice.close();
cameraDevice = null;
@Override
public void onError(@NonNull CameraDevice camera, int error) {
cameraDevice.close();
cameraDevice = null;
}, null);
ImageReader imageReader = ImageReader.newInstance(imageWidth, imageHeight, ImageFormat.JPEG, maxImages);
imageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
// 图像数据可用后的回调处理
Image image = reader.acquireNextImage();
// 处理图像数据
image.close();
}, null);
CaptureRequest.Builder captureBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.addTarget(imageReader.getSurface());
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
cameraDevice.createCaptureSession(Arrays.asList(imageReader.getSurface()), new CameraCaptureSession.StateCallback() {
@Override
public void onConfigured(@NonNull CameraCaptureSession session) {
try {
session.capture(captureBuilder.build(), mCaptureCallback, null);
} catch (CameraAccessException e) {
e.printStackTrace();
@Override
public void onConfigureFailed(@NonNull CameraCaptureSession session) {
// 配置失败的回调处理
}, null);
通过以上步骤,就可以在安卓系统中使用Camera2接口进行多张照片的无预览拍摄了。需要注意的是,上述代码只是一个简单的示例,实际应用中可能需要处理更多的异常情况和逻辑。另外,推荐使用腾讯云的云相册服务(https://cloud.tencent.com/product/tcsp)来存储和管理拍摄的照片。
文雅的跑步鞋 · sql 当前日期减一天前一天的数-掘金 8 月前 |