Girar un BMP y mostrarlo a la derecha
-
25-09-2019 - |
Pregunta
Tengo una aplicación que rompe una imagen y muestra la imagen en una imagen de ImageView. El problema es que solo puedo tomar una foto en modo paisajista para que el BMP se muestre hacia arriba hacia arriba: ¿hay alguna manera de girarlo al lado derecho si la imagen se toma en modo de retrato/
¡Gracias!
Aquí está el código que uso para colocar la imagen en la vista IMG -
private void processCameraImage(Intent intent) {
setContentView(R.layout.detectlayout);
((Button) findViewById(R.id.detect_face)).setOnClickListener(btnClick);
ImageView imageView = (ImageView) findViewById(R.id.image_view);
cameraBitmap = (Bitmap) intent.getExtras().get("data");
imageView.setImageBitmap(cameraBitmap);
Hay un botón de detección de caras que detectará si hay caras presentes.
Solución
Así es como rotarías un BMP:
private Bitmap rotateImage(Bitmap b, float angle)
{
//create a new empty bitmap to hold rotated image
Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
//make a graphics object from the empty bitmap
Graphics g = Graphics.FromImage(returnBitmap);
//move rotation point to center of image
g.TranslateTransform((float)b.Width/2,(float)b.Height / 2);
//rotate
g.RotateTransform(angle);
//move image back
g.TranslateTransform(-(float)b.Width/2,-(float)b.Height / 2);
}
Otros consejos
Aquí está el código que usé OnActivityResult () en mi actividad. La intención devuelta fue para elegir una imagen de la imagen de tipo/*. ¡Funciona bien para mí!
Uri imageUri = intent.getData();
String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION};
Cursor cur = managedQuery(imageUri, orientationColumn, null, null, null);
int orientation = -1;
if (cur != null && cur.moveToFirst()) {
orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0]));
}
Matrix matrix = new Matrix();
matrix.postRotate(orientation);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow