2013-04-26 5 views
5

Ich nenne takePicture mit einem Rückruf für das JPEG-Ereignis: camera.takePicture(null, null, this);Warum führen die Bildbytedaten in onPictureTaken zu einem gespiegelten Bild?

ist der Callback-Handler:

@Override 
public void onPictureTaken(final byte[] data, Camera camera) { 
    Bitmap picture = BitmapFactory.decodeByteArray(data, 0, data.length); 
    MediaStore.Images.Media.insertImage(getContentResolver(), picture, "name" , "description"); 
} 

In Tests, ich finde, dass das Bild immer um die y-Achse gespiegelt wird. Weiß jemand (1), ob dies für alle Geräte passiert, und (2) warum? Ich verstehe wirklich nicht, warum die Byte-Daten nicht das darstellen, was ich in der Kamera-Vorschau sehe. Ist das eine unzumutbare Erwartung?

Antwort

4

Ich denke, Sie verwenden Front Camera richtig? Das ist das Verhalten der Frontkamera. Auch wenn Sie eine Webcam auf Ihrem Laptop verwenden, ist es das gleiche.

Wenn Sie es beheben möchten. Bitte beziehen Sie sich auf Here

+0

Nizza! Vielen Dank. Gibt es eine Dokumentation darüber, ob die Frontkamera * so zu spiegeln hat? Oder ist das eine ungeschriebene Regel, der alle Hersteller folgen? – user5243421

+0

Ich denke, es ist eine allgemeine Spezifikation. Wenn die Kamera auf Sie gerichtet ist, wird das Bild aus seiner Perspektive aufgenommen. (Das ist das Gegenteil von dem, was Sie sehen.) Nicht sicher über die Dokumentation, aber meine Samsung, HTC, Sony Geräte alle Verhalten auf diese Weise. – Calvin

Verwandte Themen