2016-04-03 5 views
1

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?

Antwort

0

Mit zwei verschiedenen Geräten erhalte ich zwei verschiedene Ergebnisse. Ich starte gerade die Kamera. Mit einem Gerät bekomme ich die Videovorschau richtig, mit einem anderen Gerät bekomme ich die Videovorschau, die um 90 Grad im Uhrzeigersinn gedreht ist. Meine App ist im Querformat auf einem Android-Tablet.

Ich habe keine Lösung gefunden, um dieses Problem der Kameradrehung zu beheben.

cameraView = (SurfaceView)findViewById(R.id.cameraView); 

    barcodeDetector = new BarcodeDetector.Builder(this) 
      .setBarcodeFormats(Barcode.QR_CODE) 
      .build(); 

    cameraSource = new CameraSource 
      .Builder(this, barcodeDetector) 
      .setAutoFocusEnabled(true) 
      .setRequestedFps(60) 
      .setRequestedPreviewSize(640, 480) 
      .setFacing(CameraSource.CAMERA_FACING_FRONT) 
      .build(); 

    cameraSource.start(holder); 
+0

ja, ich habe das Gleiche gemacht. –

+0

@ КонстантинКачур Können wir die Ausrichtung in CameraSource einstellen? –

Verwandte Themen