2012-11-11 40 views
8

Tôi có một ứng dụng máy ảnh tùy chỉnh được sử dụng để chụp ảnh và cắt chúng thành hình vuông, bây giờ tôi muốn biết cách viết dữ liệu Exif cho hình ảnh đầu ra cuối cùng (đặc biệt hướng)Làm thế nào để viết Exif Data bằng cách sử dụng Custom Camera Class trong Android?

Đây là những phần quan trọng của mã của tôi:

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

và đây là cuộc gọi trở lại chức năng:

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

cập nhật: tôi thêm phần sau đây để về Phương pháp PictureTaken nhưng không có gì thay đổi:

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

Trả lời

0

Tôi biết điều này là cũ nhưng tôi có vấn đề tương tự vì vậy tôi nghĩ rằng tôi sẽ điền vào điều này trước tiên. Nếu im ngay trong sự hiểu biết bạn đang cố gắng lưu trữ các góc trong thuộc tính exif .TAG_ORIENTATION. Điều đó không đúng, Điều chỉnh phương thức 'getOrientation' của bạn để cung cấp cho bạn một trong các Định hướng Định hướng sau cụ thể cho ExifInterface class.

Bằng cách đặt vào góc cụ thể dữ liệu exif sẽ được đọc bởi Người xem Hình ảnh và cách tôi đọc câu hỏi của bạn là những gì bạn đang làm.

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

Các vấn đề liên quan