当我将图像上传到Firebase存储时它以错误的方向保存。我上传了一张以纵向拍摄的图像,但是它以横向显示并始终显示在左侧。
当用户从手机上的图库上传图像时,我希望它保留图像的方向。我已经看过使用ExifInterface,但是没有用,我也试过使用毕加索。
在我使用毕加索时显示图像。
Picasso.get().load(profileImage).resize(350, 350).transform(new CircleTransformation()).into(profileImageUri);
我的问题是,如何保持图像的图像方向并将其显示给用户?
到目前为止,这是我的代码:
// uupload users profile image
uploadProfileImage.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// intent to gallery area
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, GALLERY_INTENT);
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
final FirebaseUser user = auth.getCurrentUser();
if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK)
{
progressDialog.setMessage("Uploading Image Please Wait...");
progressDialog.show();
final Uri uri = data.getData();
final StorageReference filePath = storageReference.child("Images").child(user.getUid()).child(uri.getLastPathSegment());
this.filePath = filePath;
// Put the file in the Firebase Storage Area
filePath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>()
{
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot)
{
progressDialog.dismiss();
Toast.makeText(getActivity(), "Uploaded Successfully!", Toast.LENGTH_SHORT).show();
Uri downloadUri = taskSnapshot.getDownloadUrl();
// Saving the URL under the "Users" table, under the "Users ID" In the Firebase Database to later retrieve it
myRef.child("Users").child(user.getUid()).child("profileImage").setValue(downloadUri.toString());
}
}).addOnFailureListener(new OnFailureListener()
{
@Override
public void onFailure(@NonNull Exception e)
{
progressDialog.dismiss();
Toast.makeText(getActivity(), "Failed To Upload!", Toast.LENGTH_SHORT).show();
}
});
}
}
图像在Firebase存储区中的存储方式
图像在导航抽屉中的显示方式
此图像是在纵向方向拍摄的。不是风景。
**编辑**
这个图像不同,因为其他问题表示使用毕加索并使用旋转功能,但这不适用于我的问题,因为我有一个图像的可变上传。另外,我的解决方案,我将上传的答案适用于片段和其他解决方案仅适用于活动。我的代码运行良好,可以正确的方向上传到firebase。