Sandip Armal Patil
Sandip Armal Patil

Reputation: 5895

Captured image having black bar issue on top

I am getting black bar issue after capturing image. While capturing I can see full camera screen but after capturing I can see black bar issue. Seems to be issue with resolution but changing resolution did not help.

This issue is coming on android 14 and android 15.

Here is sample code:

Preview preview = new Preview.Builder()
            .build();

    CameraSelector cameraSelector = new CameraSelector.Builder()
            .requireLensFacing(CameraSelector.LENS_FACING_BACK)
            .build();

    preview.setSurfaceProvider(previewView.getSurfaceProvider());

    ImageCapture imageCapture =
            new ImageCapture.Builder()
                    .setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY)
                    .setTargetResolution(new Size(1280, 720))
                    .setTargetRotation(Surface.ROTATION_0)
                    .build();

    mActivityCaptureImagesBinding.imbCapture.setOnClickListener(v -> {
        imageCapture.takePicture(Runnable::run, new ImageCapture.OnImageCapturedCallback() {
            @Override
            public void onCaptureSuccess(ImageProxy imageProxy) {
                bmpCaptured = mActivityCaptureImagesBinding.captureImageCameraPreview.getBitmap();
                showHidePreviewScreen();
            }

            @Override
            public void onError(ImageCaptureException exception) {
                // Handle the exception however you'd like
                Log.e(TAG_IMAGES_CAPTURE, "Exception while taking image : " + exception.getMessage());
            }
        });

    });
    // Attach use cases to the camera with the same lifecycle owner
    camera = cameraProvider.bindToLifecycle(
            (LifecycleOwner) this,
            cameraSelector,
            preview, imageCapture);
}


private void showHidePreviewScreen() {

    try {
        runOnUiThread(() -> {
            mActivityCaptureImagesBinding.imvPreview.setImageBitmap(bmpCaptured);
      mActivityCaptureImagesBinding.captureImageCameraPreview.setVisibility(View.GONE);
            mActivityCaptureImagesBinding.imvPreview.setVisibility(View.VISIBLE);
            
        });

    } catch (Exception e) {
       Log.e(TAG_IMAGES_CAPTURE, "Exception while showHidePreviewScreen : " + e.getMessage());
    }

}

I tried to change target resolution to .setTargetResolution(new Size(4256, 2832)) but still no help.

Here you can see sample image.

enter image description here

Upvotes: 0

Views: 37

Answers (0)

Related Questions