diff options
author | Sascha Haeberling <haeberling@google.com> | 2013-09-27 14:38:39 -0700 |
---|---|---|
committer | Sascha Haeberling <haeberling@google.com> | 2013-09-27 14:38:39 -0700 |
commit | 21a2e9cb07caba660120b7f5eba6e053a6cb3ac3 (patch) | |
tree | 9c4be6eb72bfb0c62a17e9ad86d5d75f4572716b /src/com/android/camera/tinyplanet | |
parent | 3cde3ece3e6e384f831a02f21c677e292a824df8 (diff) | |
download | android_packages_apps_Snap-21a2e9cb07caba660120b7f5eba6e053a6cb3ac3.tar.gz android_packages_apps_Snap-21a2e9cb07caba660120b7f5eba6e053a6cb3ac3.tar.bz2 android_packages_apps_Snap-21a2e9cb07caba660120b7f5eba6e053a6cb3ac3.zip |
Add basic EXIF to the tiny planet so that rotate succeeds.
Bug: 10861115
Change-Id: I1eec2bf4d6879c227a07c5364bc821749ace312b
Diffstat (limited to 'src/com/android/camera/tinyplanet')
-rw-r--r-- | src/com/android/camera/tinyplanet/TinyPlanetFragment.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/com/android/camera/tinyplanet/TinyPlanetFragment.java b/src/com/android/camera/tinyplanet/TinyPlanetFragment.java index c49f77ef0..9cde87b16 100644 --- a/src/com/android/camera/tinyplanet/TinyPlanetFragment.java +++ b/src/com/android/camera/tinyplanet/TinyPlanetFragment.java @@ -44,14 +44,18 @@ import com.adobe.xmp.XMPMeta; import com.android.camera.CameraActivity; import com.android.camera.MediaSaveService; import com.android.camera.MediaSaveService.OnMediaSavedListener; +import com.android.camera.exif.ExifInterface; import com.android.camera.tinyplanet.TinyPlanetPreview.PreviewSizeListener; import com.android.camera.util.XmpUtil; import com.android.camera2.R; import java.io.ByteArrayOutputStream; import java.io.FileNotFoundException; +import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.util.Date; +import java.util.TimeZone; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -358,7 +362,27 @@ public class TinyPlanetFragment extends DialogFragment implements PreviewSizeLis ByteArrayOutputStream jpeg = new ByteArrayOutputStream(); resultBitmap.compress(CompressFormat.JPEG, 100, jpeg); - return new TinyPlanetImage(jpeg.toByteArray(), outputSize); + return new TinyPlanetImage(addExif(jpeg.toByteArray()), outputSize); + } + + /** + * Adds basic EXIF data to the tiny planet image so it an be rewritten + * later. + * + * @param jpeg the JPEG data of the tiny planet. + * @return The JPEG data containing basic EXIF. + */ + private byte[] addExif(byte[] jpeg) { + ExifInterface exif = new ExifInterface(); + exif.addDateTimeStampTag(ExifInterface.TAG_DATE_TIME, System.currentTimeMillis(), + TimeZone.getDefault()); + ByteArrayOutputStream jpegOut = new ByteArrayOutputStream(); + try { + exif.writeExif(jpeg, jpegOut); + } catch (IOException e) { + Log.e(TAG, "Could not write EXIF", e); + } + return jpegOut.toByteArray(); } private int getDisplaySize() { |