Frage

Ich habe eine App, die ein Bild schnappt und das Bild auf einem ImageView anzeigt. Das Problem ist, dass ich nur ein Bild im Landschaftsmodus machen kann, damit der BMP rechts nach oben angezeigt wird - gibt es eine Möglichkeit, es nach oben nach oben zu drehen, wenn das Bild im Porträtmodus aufgenommen wird/

Vielen Dank!

Hier ist der Code, den ich verwende, um das Bild in die IMG -Ansicht zu platzieren -

  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);

Es gibt einen Erkennungs -Gesichterknopf, der erkennt, ob Gesichter vorhanden sind.

War es hilfreich?

Lösung

So würden Sie einen BMP drehen:

   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);
    }

Andere Tipps

Hier ist der Code, den ich in meiner Aktivität OnactivityResult () verwendet habe. Die zurückgegebene Absicht bestand darin, ein Bild des Typbilds zu wählen/*. Funktioniert gut für mich!

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top