Ich habe zwei Android-Geräte. CameraSource funktioniert für sie anders. Bei einem Gerät ist die Ausrichtung des Fotos korrekt, ohne nach dem Speichern zu drehen. Aber für ein anderes Gerät gespeichert das Foto mit falscher Ausrichtung.Android CameraSource funktioniert anders für mehrere Geräte und dreht nicht Bild
Ich habe erstellt CameraSource:
source = new CameraSource.Builder(context, detector) .setRequestedPreviewSize(640, 480) .setFacing(cameraId) .setRequestedFps(30.0f) .setAutoFocusEnabled(true) .build();
Ich habe mit der Aktion erstellt Button:
source.takePicture(null, new CameraSource.PictureCallback() { @Override public void onPictureTaken(byte[] bytes) { File folder = PhotoUtils.getGalleryFolder(); writeFileIntoDevice(bytes, folder.getAbsolutePath()); } });
private String writeFileIntoDevice(byte[] data, String path) {
Bitmap orignalImage = BitmapFactory.decodeByteArray(data, 0, data.length);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd_hhmmss");
String fileName = formatter.format(new Date());
File file = new File(path, fileName + ".jpg");
try (FileOutputStream stream = new FileOutputStream(file)) {
orignalImage.compress(Bitmap.CompressFormat.JPEG, 80, stream);
Log.i(PhotoCreator.class.getName(), "photo was saved to " + path);
} catch (Exception e) {
Log.e(PhotoCreator.class.getName(), "can't save photo", e);
}
return file.getAbsolutePath();
}
Ausrichtung der Fotos auf den Geräten unterschiedlich ist und ich versuchte, Bitmap nach dem Speichern zu drehen, aber ohne Erfolg.
Ich versuchte dies: Controlling the camera to take pictures in portrait doesn't rotate the final images
Und: Android camera resulted image should be rotated after the capture?
Wie Bild für alle Geräte richtig drehen?
ja, ich habe das Gleiche gemacht. –
@ КонстантинКачур Können wir die Ausrichtung in CameraSource einstellen? –