b/packages/apps/Camera2/src/com/android/camera/Storage.java
@@ -42,6 +42,9 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
+import android.graphics.Matrix;
+import com.android.camera.util.CameraUtil;
+import java.io.ByteArrayOutputStream;
import javax.annotation.Nonnull;
@@ -269,9 +272,18 @@ public class Storage {
public static Uri updateImage(Uri imageUri, ContentResolver resolver, String title, long date,
Location location, int orientation, ExifInterface exif,
byte[] jpeg, int width, int height, String mimeType) throws IOException {
+
+ Bitmap bitmap = CameraUtil.makeBitmap(jpeg, width * height);
+ Matrix m = new Matrix();
+ m.postScale(-1, 1);
+ bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
+ byte[] jpegData = baos.toByteArray();
+
String path = generateFilepath(title, mimeType);
- writeFile(path, jpeg, exif);
- return updateImage(imageUri, resolver, title, date, location, orientation, jpeg.length, path,
+ writeFile(path, jpegData, exif);
+ return updateImage(imageUri, resolver, title, date, location, orientation, jpegData.length, path,
width, height, mimeType);
}
(END)