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);
}
}
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.