我正在尝试将图像上传到Firebase存储中,并且我希望该图像不应大于50 kb,我正在尝试获取位图的大小,以便可以知道位图的大小是否大于50 kb。我尝试了很多人建议的代码,但没有一个对我有用。请帮助我解决这个问题。这是我的代码:
@Override
protected void onActivityResult( int requestCode , int resultCode , @Nullable Intent data )
{
super.onActivityResult (requestCode , resultCode , data);
if(requestCode == ChooseImage && resultCode == RESULT_OK && data != null && data.getData() != null){
userProfileImage = data.getData ();
try {
Bitmap bitmap=MediaStore.Images.Media.getBitmap (getContentResolver ( ) , userProfileImage);
if (bitmap.getHeight () * bitmap.getRowBytes () < 50000)
profile_photo.setImageBitmap (bitmap);
btn.setOnClickListener (new View.OnClickListener ( ) {
@Override
public void onClick( View v ) {
uploaImage ();
}
});
} catch (IOException e) {
e.printStackTrace ( );
Toast.makeText (this , e.getMessage () , Toast.LENGTH_SHORT).show ( );
}
}
}
您可以使用此代码获取以KB为单位的大小:
尝试此代码:
尝试使用图像压缩器库,它将自动缩小为最小尺寸而不会损失图像质量,也可以指定修复宽度和高度将始终为您提供低于50 kb的图像检查此库:-