You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2013/04/17 22:40:31 UTC
android commit: [CB-2432] Don't try and write exif info for images
from picasa
Updated Branches:
refs/heads/master d3b7903af -> 191f31baa
[CB-2432] Don't try and write exif info for images from picasa
Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/191f31ba
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/191f31ba
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/191f31ba
Branch: refs/heads/master
Commit: 191f31baa74d1dd99e321357c562d10f2c426f0c
Parents: d3b7903
Author: Andrew Grieve <ag...@chromium.org>
Authored: Wed Apr 17 16:38:56 2013 -0400
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Wed Apr 17 16:40:00 2013 -0400
----------------------------------------------------------------------
.../src/org/apache/cordova/CameraLauncher.java | 36 +++++++++------
1 files changed, 22 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/191f31ba/framework/src/org/apache/cordova/CameraLauncher.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/CameraLauncher.java b/framework/src/org/apache/cordova/CameraLauncher.java
index b34f722..426d250 100755
--- a/framework/src/org/apache/cordova/CameraLauncher.java
+++ b/framework/src/org/apache/cordova/CameraLauncher.java
@@ -419,14 +419,7 @@ public class CameraLauncher extends CordovaPlugin implements MediaScannerConnect
}
if (this.correctOrientation) {
- String[] cols = { MediaStore.Images.Media.ORIENTATION };
- Cursor cursor = this.cordova.getActivity().getContentResolver().query(uri,
- cols, null, null, null);
- if (cursor != null) {
- cursor.moveToPosition(0);
- rotate = cursor.getInt(0);
- cursor.close();
- }
+ rotate = getImageOrientation(uri);
if (rotate != 0) {
Matrix matrix = new Matrix();
matrix.setRotate(rotate);
@@ -446,15 +439,17 @@ public class CameraLauncher extends CordovaPlugin implements MediaScannerConnect
try {
// Create an ExifHelper to save the exif data that is lost during compression
String resizePath = DirectoryManager.getTempDirectoryPath(this.cordova.getActivity()) + "/resize.jpg";
+ // Some content: URIs do not map to file paths (e.g. picasa).
+ String realPath = FileHelper.getRealPath(uri, this.cordova);
ExifHelper exif = new ExifHelper();
- try {
- if (this.encodingType == JPEG) {
- exif.createInFile(FileHelper.getRealPath(uri, this.cordova));
+ if (realPath != null && this.encodingType == JPEG) {
+ try {
+ exif.createInFile(realPath);
exif.readExifData();
rotate = exif.getOrientation();
+ } catch (IOException e) {
+ e.printStackTrace();
}
- } catch (IOException e) {
- e.printStackTrace();
}
OutputStream os = new FileOutputStream(resizePath);
@@ -462,7 +457,7 @@ public class CameraLauncher extends CordovaPlugin implements MediaScannerConnect
os.close();
// Restore exif data to file
- if (this.encodingType == JPEG) {
+ if (realPath != null && this.encodingType == JPEG) {
exif.createOutFile(resizePath);
exif.writeExifData();
}
@@ -496,6 +491,19 @@ public class CameraLauncher extends CordovaPlugin implements MediaScannerConnect
}
}
+ private int getImageOrientation(Uri uri) {
+ String[] cols = { MediaStore.Images.Media.ORIENTATION };
+ Cursor cursor = cordova.getActivity().getContentResolver().query(uri,
+ cols, null, null, null);
+ int rotate = 0;
+ if (cursor != null) {
+ cursor.moveToPosition(0);
+ rotate = cursor.getInt(0);
+ cursor.close();
+ }
+ return rotate;
+ }
+
/**
* Figure out if the bitmap should be rotated. For instance if the picture was taken in
* portrait mode