如何获得以kb为单位的位图大小

问题描述 投票:1回答:3

我正在尝试将图像上传到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 ( );
        }
    }
}
java android firebase-storage image-size
3个回答
0
投票

您可以使用此代码获取以KB为单位的大小:


0
投票

尝试此代码:


-1
投票

尝试使用图像压缩器库,它将自动缩小为最小尺寸而不会损失图像质量,也可以指定修复宽度和高度将始终为您提供低于50 kb的图像检查此库:-

© www.soinside.com 2019 - 2024. All rights reserved.