カメラ機能を使用するAndroidアプリケーションを作成しています。私が抱えている問題は、フロントのカメラから取得した画像データ(バイト[])が、samsung s7とnexusの電話機に逆さまになっていることです。プレビューでは正しいように見えますが、データをそのまま保存してギャラリーに表示すると、上下逆に表示されます。私は保存する前に画像データを反転することができますが、4.4(kitkat)を実行しているブルーC 5.0 HDでコードをテストし、その電話機の画像データが適切な方向に向けられています。画像を反転すると、他のデバイスでエラーが発生します。私は、新しいサムスンとネクサスの携帯電話が建てられたときに、正面を向いているカメラが逆さになって部屋を救うために問題があると言われています。私はこれが正しいかどうかは分かりませんが、もしそうなら、私はすべての画像を反転すると、カメラの向きが正しい電話機が壊れてしまいます。画像を保存する前に画像データの向きを検出する方法はありますか?ここでAndroidフロントカメラの画像が逆さまに保存されています
は、私が使用していますコードです:
mCamera.takePicture(null, null, mPicture);
コールバック:
private final Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
processCameraCallback(data);
}
};
処理データ:
public void processCameraCallback(byte[] data) {
confirmPhoto(true);
//Make a new empty picture file
try {
pictureFile = Utils.createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
Log.e(TAG, "Failed to create photo file: " + ex.toString());
confirmPhoto(false);
return;
}
//Write the file to the storage
try {
FileOutputStream fos;
if (pictureFile != null) {
fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
}
} catch (FileNotFoundException e) {
Log.d(TAG, "File not found: " + e.getMessage());
confirmPhoto(false);
return;
} catch (IOException e) {
Log.d(TAG, "Error accessing file: " + e.getMessage());
confirmPhoto(false);
return;
}
}
あなたはこれを解明しましたか?私は、ネイティブカメラアプリを使用してS7で同じ問題を抱えています。また、EXIFデータに返された向きを補正します。 –