2012-11-11 18 views
8

Resim çekmek ve kareye kırpmak için kullanılan özel bir kamera uygulamasına sahibim, şimdi son çıktı görüntüsü için Exif verilerini nasıl yazacağımı bilmek istiyorum (özellikle yönlendirme)Android'de özel Kamera Sınıfı'nı kullanarak Exif Data nasıl yazılır?

İşte önemli bölümler şunlardır: kodum:

captureButton = (Button) findViewById(R.id.button_capture); 
    captureButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Take a picture 
      mCamera.takePicture(null, null, mPicture);         
     } 
    }); 

ve bu çağrı geri fonksiyonudur:

PictureCallback mPicture = new PictureCallback() { 
     @Override 
     public void onPictureTaken(byte[] data, Camera camera) { 
      File pictureFile = getOutputMediaFile(); 
      if (pictureFile == null) { 
       return; 
      } 
      try { 
       FileOutputStream fos = new FileOutputStream(pictureFile); 
       fos.write(data); 
       fos.close(); 
      } catch (FileNotFoundException e) { 

      } catch (IOException e) { 
      } 
     } 
    }; 

Güncelleme: Ben aşağıdaki eklendi

ExifInterface exif; 
       exif = new ExifInterface(pictureFile.getAbsolutePath()); 
// Notice getOrientation method gets an Integer with the angle : 0 , 90 , 180 , 270 ..etc 
       exif.setAttribute(ExifInterface.TAG_ORIENTATION, String.valueOf(getOrientation())); 
       exif.saveAttributes(); 

cevap

0

Bu eski olduğunu biliyorum ama benzer bir konu bu yüzden ilk bu doldurmak düşündüm vardı: PictureTaken yöntemi ama hiçbir şey değişmedi. Eğer doğru anlıyorsanız, açıyı .TAG_ORIENTATION exif özniteliğinde depolamaya çalışıyorsunuz. Bu yanlış, exif verileri hatalı Görüntü İzleyiciler tarafından okunacaktır belirli açıda koyarak size ExifInterface class.

özel, aşağıdaki Oryantasyon Sabitlerinin birini vermek için 'getOrientation' yöntemini ayarlayın ve ben sorunuzu okumak nasıl ne yapıyorsun

int ORIENTATION_FLIP_HORIZONTAL int ORIENTATION_FLIP_VERTICAL
int ORIENTATION_NORMAL int ORIENTATION_ROTATE_180
int ORIENTATION_ROTATE_270 int ORIENTATION_ROTATE_90
int ORIENTATION_TRANSPOSE int ORIENTATION_TRANSVERSE
int ORIENTATION_UNDEFINED

İlgili konular