これが私がそれをした方法です
このコードブロックは他の場所で設定されています
Camera.Size size
Rect rectangle = new Rect();
rectangle.bottom = size.height;
rectangle.top = 0;
rectangle.left = 0;
rectangle.right = size.width;
これは仕事をする方法です
private Bitmap rotateBitmap(YuvImage yuvImage, int orientation, Rect rectangle)
{
ByteArrayOutputStream os = new ByteArrayOutputStream();
yuvImage.compressToJpeg(rectangle, 100, os);
Matrix matrix = new Matrix();
matrix.postRotate(orientation);
byte[] bytes = os.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
return Bitmap.createBitmap(bitmap, 0 , 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
}
YUVImageをJPEGに圧縮して、ビットマップで処理できるようにします。ビットマップを回転してからエクスポートします。それをJPEGに戻すために、私はこの行を使用しました
image.compress(Bitmap.CompressFormat.JPEG, 50, outputStream);