获取Android位图的大小

11

可能是重复问题:
解码后位图的字节大小?

有没有办法获取这个位图的大小? 我已经尝试使用getByteCount(),但无法使用它?

Bitmap bitmap = BitmapFactory.decodeByteArray(decryptedData , 0, decryptedData .length);    //decoding bytearrayoutputstream to bitmap

有什么建议吗?


4
@stema,@ThiefMaster;我认为当您将一个问题标记为重复时,在该问题的评论中应该给出原始问题的链接,这样,其他正在寻找类似问题答案的人们将会从中受益。 - Shirish Herwade
2个回答

5

API中可以看出,您可以使用

getWidth()
getHeight()

对于像素位图的大小。

如果它是字节数组(8位=1字节),那么只需取decryptedData.length - offset,您就知道位图中有多少字节。

或者我在这里漏掉了什么?


4
如果图像是本地存储的,您可以执行以下操作:
public long getImageLength(String absFileName)
{        
    File file = new File(absFileName);
    return file.length();
}

/**
 * From "https://dev59.com/KXI95IYBdhLWcg3wwwyY"
 * uri - data stored in an Intent returned from an application such as Gallery or Camera
 */
private String getAbsPath(Uri uri) 
{
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

2
这是不正确的!文件大小与位图大小无关。 大多数图片都经过压缩,实际的位图大小通常更大。 - donald
什么是managedQuery? - Han Whiteking

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接