画像をキャプチャするアプリを作成しました。問題は、キャプチャ後に画像が 90 度回転することです。私は設定しました
camera.setDisplayOrientation(NINTY_DEGREES);
ただし、これは のプレビューにのみ影響しSurfaceView
ます。本当の問題は、カメラから取得したバイトが反転することです。なぜこれが起こったのですか?キャプチャする前に反転するように設定できる設定はありますか?
画像がキャプチャされると、アクティビティがイベントにサブスクライブします。byte[]
がいっぱいになったときに登録する方法は次のとおりです。
camera.takePicture(null, null, new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
if (null != callback)
callback.onJpegPictureTaken(data, camera);
}
});
私の中でActivity
public class History extends BaseWindow implements OnClickListener, CaptureImageCallback
および関連するメソッド:
@Override
public void onJpegPictureTaken(byte[] data, Camera camera) {
Intent i = new Intent(this, ImageEditing.class);
i.putExtra("image", data);
startActivity(i);
}
画像データを含むパラメータを確認できますdata
。このバイト配列は 90 度回転しています。もちろん、90 度回転させることもできImageView
ますが、自家製の Web サービスなどの他のシステムで作業するため、このホット フィックスをすべての外部システムに適用する必要があります。この回転を修正するにはどうすればよいですか?
ありがとう!