Ich möchte die CameraX-API auf Pixel8a verwenden, um Bilder in der gleichen Qualität wie die Standard-Kamera-App aufzuneAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Ich möchte die CameraX-API auf Pixel8a verwenden, um Bilder in der gleichen Qualität wie die Standard-Kamera-App aufzune

Post by Guest »

Ich erstelle eine App, die die CameraX-API zum Aufnehmen von Bildern verwendet.
Beim Vergleich von Bildern, die mit der App, die ich auf dem Pixel8a erstellt habe, und der Standard-Kamera-App aufgenommen wurden, ist das Motiv des Bildes Das mit der von mir erstellten App aufgenommene Bild erscheint bei Vergrößerung etwas verschwommen.
Die Aufnahmeumgebung ist dieselbe und ich habe es mit maximaler Auflösung versucht.
Sind weitere Einstellungen erforderlich, um Bilder in der gleichen Qualität wie mit der Standardkamera aufzunehmen? app?
Unten ist mein Code für bindToLifecycle.

Code: Select all

   public void bindPreview(CameraUiControls controls,
@NonNull ProcessCameraProvider cameraProvider) {

try {
var size = getMaxResolution(getActivity().getApplicationContext());
var screenAspectRatio = aspectRatio(size.getHeight(), size.getWidth());

var rotation = 0;
var disp = controls.getPreviewView().getDisplay();
if (Objects.nonNull(disp)) {
rotation = disp.getRotation();
}
controls.getPreviewView().setScaleType(PreviewView.ScaleType.FIT_CENTER);

this.preview = new Preview.Builder()
.setTargetAspectRatio(screenAspectRatio)
.setTargetRotation(rotation)
.build();

this.captureSize = new Size(size.getHeight(), size.getWidth());

// Set up the capture use case to allow users to take photos
imageCapture = new ImageCapture.Builder()
.setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY)
.setTargetRotation(rotation)
.setTargetResolution(captureSize)
.build();

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

imageAnalysis = new ImageAnalysis.Builder()
.setTargetResolution(captureSize)
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build();

imageAnalysis.setAnalyzer(ContextCompat.getMainExecutor(getContext()),
image -> {

createClip(image);

image.close();
});

var aspectRatio = new Rational(size.getHeight(),
size.getWidth());

var viewPort = new ViewPort.Builder(
aspectRatio,
this.preview.getTargetRotation()
).build();

var useCaseGroup = new UseCaseGroup.Builder()
.addUseCase(this.preview)
.addUseCase(this.imageCapture)
.addUseCase(imageAnalysis)
.build();

this.cameraProvider.unbindAll();

this.camera = cameraProvider.bindToLifecycle(this,
cameraSelector,
useCaseGroup);

preview.setSurfaceProvider(controls.getPreviewView().getSurfaceProvider());

} catch (Exception e) {
Timber.e(e);
}
}
Verwendete Version
CameraX API: 1.2.1
Pixel8a Betriebssystem: 14
Vielen Dank
Ich habe versucht, die CameraXAPI-Version auf 1.4.0 zu aktualisieren, aber das Ergebnis war das gleiche.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post