diff options
author | Sascha Haeberling <haeberling@google.com> | 2013-09-27 17:06:49 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-09-27 17:06:49 -0700 |
commit | 70d6ff76b6e967fccbaf66256331e076366d6ae0 (patch) | |
tree | c95cef4a62e134305aeade6c632e16e5c8ce04be | |
parent | d200ce9a514895d021129e5f534cac0cf5bdfcf8 (diff) | |
parent | ac5cb2430408f9a1854a4e22e8297733279bf75b (diff) | |
download | android_packages_apps_Snap-70d6ff76b6e967fccbaf66256331e076366d6ae0.tar.gz android_packages_apps_Snap-70d6ff76b6e967fccbaf66256331e076366d6ae0.tar.bz2 android_packages_apps_Snap-70d6ff76b6e967fccbaf66256331e076366d6ae0.zip |
am ac5cb243: Merge "Add basic EXIF to the tiny planet so that rotate succeeds." into gb-ub-photos-carlsbad
* commit 'ac5cb2430408f9a1854a4e22e8297733279bf75b':
Add basic EXIF to the tiny planet so that rotate succeeds.
-rw-r--r-- | src/com/android/camera/data/RotationTask.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/tinyplanet/TinyPlanetFragment.java | 26 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/com/android/camera/data/RotationTask.java b/src/com/android/camera/data/RotationTask.java index 000444729..66134d44c 100644 --- a/src/com/android/camera/data/RotationTask.java +++ b/src/com/android/camera/data/RotationTask.java @@ -103,6 +103,7 @@ public class RotationTask extends AsyncTask<LocalData, Void, LocalData> { if (tag != null) { exifInterface.setTag(tag); try { + // Note: This only works if the file already has some EXIF. exifInterface.forceRewriteExif(filePath); long fileSize = new File(filePath).length(); values.put(Images.Media.SIZE, fileSize); 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() { |