fixed image rotation

This commit is contained in:
Vladimir Enchev
2016-02-24 17:16:22 +02:00
parent 6b87e768d1
commit 0855bf59b6

View File

@ -63,6 +63,21 @@ export var takePicture = function (options?): Promise<any> {
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);
}