SORU
28 Aralık 2012, Cuma


neden görüntü android kamera niyet alır bazı cihazlarda döndürülmüş kullanarak çekilen

Görüntü yakalama ve görüntü görüntülemek için hazırlıyorum.

public void captureImage() {
    Intent intentCamera = new Intent("android.media.action.IMAGE_CAPTURE");
    File filePhoto = new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
    imageUri = Uri.fromFile(filePhoto);
    MyApplicationGlobal.imageUri = imageUri.getPath();
    intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
    startActivityForResult(intentCamera, TAKE_PICTURE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intentFromCamera) {
    super.onActivityResult(requestCode, resultCode, intentFromCamera);
    if (resultCode == RESULT_OK && requestCode == TAKE_PICTURE) {
        if (intentFromCamera != null) {
            Bundle extras = intentFromCamera.getExtras();
            if (extras.containsKey("data")) {
                bitmap = (Bitmap) extras.get("data");
            } else {
                bitmap = getBitmapFromUri();
            }
        } else {
            bitmap = getBitmapFromUri();
        }
        // imageView.setImageBitmap(bitmap);
        imageView.setImageURI(imageUri);
    } else {
    }
}

public Bitmap getBitmapFromUri() {
    getContentResolver().notifyChange(imageUri, null);
    ContentResolver cr = getContentResolver();
    Bitmap bitmap;
    try {
        bitmap = android.provider.MediaStore.Images.Media.getBitmap(cr, imageUri);
        return bitmap;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

Ama sorun, bazı cihazlarda görüntü her yeri. örneğin Samsung cihaz üzerinde iyi çalışır, Sony Experia görüntü Toshiba(sekmesi) 180 derece ile gelişmek 90 derece döndürülmüş ve alır

CEVAP
28 Aralık 2012, Cuma


Çoğu cep telefonu fotoğraf makinesi manzara, portre fotoğrafı çekmek, çekilen fotoğrafları 90 derece döndürülmüş olacak yani. Bu durumda, kamera yazılımı fotoğrafa bakıldığında olması gereken yönelim ile EXIF verileri doldurmak gerekir.

ExifInterface ei = new ExifInterface(photoPath);
int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

switch(orientation) {
    case ExifInterface.ORIENTATION_ROTATE_90:
        rotateImage(bitmap, 90);
        break;
    case ExifInterface.ORIENTATION_ROTATE_180:
        rotateImage(bitmap, 180);
        break;
    // etc.
}
THIS ANSWER &;< lt;< Bitmap döndürmek için öğrenmek.

Eğer bu işe yaramazsa iş varsa, kullanın :

int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 
                                       ExifInterface.ORIENTATION_UNDEFINED)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How Things Are Made

    How Things A

    17 HAZİRAN 2008
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009