我正在实现图像上传功能以使用手机相机。 一切正常,但照片总是旋转错误。
我确实读过有关使用PHP函数exif_read_data的信息。 我找到了如何使用它以及如何更改方向以及如何再次保存它的代码。现在我的问题是(使用Android)exif_read_data数组不包含任何“方向”,因此我无法更改方向。我找不到有关此问题的任何提示或帖子。为什么我的方向没有存储在此数组中?
感谢您的帮助
答案 0 :(得分:0)
几周前,我遇到了类似的问题,我发现的唯一解决方案是在将其设置在View上之前相应地旋转图像。无需接触与方向相关的内容。使用此功能后,我将图像上传到Firebase,一切都很棒。
public static Bitmap rotateBitmap(Bitmap sourceBitmap, float angle) {
Matrix matrix = new Matrix();
matrix.postRotate(angle);
return Bitmap.createBitmap(sourceBitmap, 0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight(), matrix, true);
}
在这种情况下,请使用此功能将其设置为ImageView:
if (requestCode == Constants.REQUEST_CODE_CAMERA_PHOTO) {
imgURL = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imgURL);
bitmap = rotateBitmap(bitmap, -90);
ivProfile.setImageBitmap(bitmap);
}
我希望这会有所帮助。