From 0855bf59b6a6f5942f38fff1281c614fe348e794 Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Wed, 24 Feb 2016 17:16:22 +0200 Subject: [PATCH] fixed image rotation --- camera/camera.android.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/camera/camera.android.ts b/camera/camera.android.ts index 0d7bb80ac..30a8d46de 100644 --- a/camera/camera.android.ts +++ b/camera/camera.android.ts @@ -63,6 +63,21 @@ export var takePicture = function (options?): Promise { scaledSizeImage = bitmap; } + var ei = new android.media.ExifInterface(tempPicturePath); + var orientation = ei.getAttributeInt(android.media.ExifInterface.TAG_ORIENTATION, android.media.ExifInterface.ORIENTATION_NORMAL); + + switch (orientation) { + case android.media.ExifInterface.ORIENTATION_ROTATE_90: + scaledSizeImage = rotateBitmap(scaledSizeImage, 90); + break; + case android.media.ExifInterface.ORIENTATION_ROTATE_180: + scaledSizeImage = rotateBitmap(scaledSizeImage, 180); + break; + case android.media.ExifInterface.ORIENTATION_ROTATE_270: + scaledSizeImage = rotateBitmap(scaledSizeImage, 270); + break; + } + var imageSource: typeof imageSourceModule = require("image-source"); resolve(imageSource.fromNativeSource(scaledSizeImage)); @@ -102,4 +117,10 @@ var createDateTimeStamp = function () { date.getMinutes().toString() + date.getSeconds().toString(); return result; +} + +var rotateBitmap = function (source, angle) { + var matrix = new android.graphics.Matrix(); + matrix.postRotate(angle); + return android.graphics.Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true); } \ No newline at end of file