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