summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHung-ying Tyan <tyanh@google.com>2012-09-04 09:56:00 +0800
committerHung-ying Tyan <tyanh@google.com>2012-09-04 10:05:10 +0800
commit25d33864d28f6acf25d2e835a85bf04a9a22f57e (patch)
tree7136ecfc407c48b3fce1afed90547a9b0304f0d1 /src
parentdc433a066188e52593aaf7f0fae96191f44a5e26 (diff)
downloadandroid_packages_apps_Snap-25d33864d28f6acf25d2e835a85bf04a9a22f57e.tar.gz
android_packages_apps_Snap-25d33864d28f6acf25d2e835a85bf04a9a22f57e.tar.bz2
android_packages_apps_Snap-25d33864d28f6acf25d2e835a85bf04a9a22f57e.zip
Fix NPE in CropImage.changeExifImageSizeTag().
Bug: 7099850 Change-Id: Ib7b3b7d9fddaf53853bcc98b9588dfadda0aee6f
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/app/CropImage.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/app/CropImage.java b/src/com/android/gallery3d/app/CropImage.java
index 21ce98388..f9254eefe 100644
--- a/src/com/android/gallery3d/app/CropImage.java
+++ b/src/com/android/gallery3d/app/CropImage.java
@@ -392,10 +392,17 @@ public class CropImage extends AbstractGalleryActivity {
}
}
- private void changeExifImageSizeTag(ExifData data, int width, int height) {
- data.getIfdData(IfdId.TYPE_IFD_0).getTag(ExifTag.TIFF_TAG.TAG_IMAGE_WIDTH).setValue(width);
- data.getIfdData(IfdId.TYPE_IFD_0).getTag(ExifTag.TIFF_TAG.TAG_IMAGE_HEIGHT).setValue(
- height);
+ private void changeExifImageSizeTags(ExifData data, int width, int height) {
+ // FIXME: would the image size be too large for TYPE_UNSIGHED_SHORT?
+ ExifTag tag = new ExifTag(ExifTag.TIFF_TAG.TAG_IMAGE_WIDTH,
+ ExifTag.TYPE_UNSIGNED_SHORT, 1, IfdId.TYPE_IFD_0);
+ tag.setValue(new int[] {width});
+ data.getIfdData(IfdId.TYPE_IFD_0).setTag(tag);
+
+ tag = new ExifTag(ExifTag.TIFF_TAG.TAG_IMAGE_HEIGHT,
+ ExifTag.TYPE_UNSIGNED_SHORT, 1, IfdId.TYPE_IFD_0);
+ tag.setValue(new int[] {height});
+ data.getIfdData(IfdId.TYPE_IFD_0).setTag(tag);
}
private Uri saveToMediaProvider(JobContext jc, Bitmap cropped) {
@@ -426,6 +433,9 @@ public class CropImage extends AbstractGalleryActivity {
if (pos >= 0) filename = filename.substring(0, pos);
ExifData exifData = new ExifData(ByteOrder.BIG_ENDIAN);
PicasaSource.extractExifValues(mMediaItem, exifData);
+ changeExifImageSizeTags(exifData, cropped.getWidth(), cropped.getHeight());
+ // TODO: modify the Software tag to indicate which the image is revised by
+ // TODO: modify the DateTime tag
File output = saveMedia(jc, cropped, DOWNLOAD_BUCKET, filename, exifData);
if (output == null) return null;
@@ -467,7 +477,9 @@ public class CropImage extends AbstractGalleryActivity {
if (convertExtensionToCompressFormat(getFileExtension()) == CompressFormat.JPEG) {
exifData = getExifData(oldPath.getAbsolutePath());
if (exifData != null) {
- changeExifImageSizeTag(exifData, cropped.getWidth(), cropped.getHeight());
+ // TODO: modify the Software tag to indicate which the image is revised by
+ // TODO: modify the DateTime tag
+ changeExifImageSizeTags(exifData, cropped.getWidth(), cropped.getHeight());
}
}
output = saveMedia(jc, cropped, directory, filename, exifData);