2012-11-11 12 views
8

Mam aplikacji aparatu niestandardowy, który jest używany do robienia zdjęć i przyciąć je do kwadratu, teraz chcę wiedzieć, jak napisać danych EXIF ​​dla wyjścia ostatecznego obrazu (specjalnie orientacji)Jak pisać dane Exif za pomocą niestandardowej klasy kamery w systemie Android?

Oto ważne elementy mój kod:

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

i to jest funkcja oddzwaniania:

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

Aktualizacja: i dodaje następujące do dnia Metoda PictureTaken ale nic się nie zmieniło:

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

Odpowiedz

0

wiem, że to jest stary, ale miałem podobny problem, więc pomyślałem, że wypełnienie tego w pierwszej kolejności. Jeśli mam rację, próbujesz zapisać kąt w atrybucie exif .TAG_ORIENTATION. To błędne, Dostosuj „getOrientation” metodę, aby dać Ci jedną z następujących stałych orientacji specyficznych dla ExifInterface class.

Poprzez umieszczenie w określonym kątem danych EXIF ​​zostaną nieprawidłowo odczytane przez Przeglądarki Obrazów i jak czytam twoje pytanie, które właśnie to robisz.

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

Powiązane problemy