Android计算一张图片的大小

要计算一张图片的大小,可以使用以下步骤:

1、获取图片文件的路径或者资源ID
2、创建一个BitmapFactory.Options对象,并将inJustDecodeBounds属性设置为true。这样在解码过程中不会真正加载整个图片到内存中,而是只获取宽度和高度信息。
3、使用BitmapFactory.decodeFile()或者BitmapFactory.decodeResource()方法来解码图片,并传入之前创建的Options对象。
4、通过Options对象的outWidth和outHeight属性获取到图片的实际宽度和高度。
5、根据宽度和高度计算出图片的大小。可以使用公式:大小=宽度x高度x每像素所占字节数。每像素所占字节数取决于图像格式(例如 ARGB_8888是4字节)

// 计算本地文件路径对应的图片大小
public long calculateImageSize(String filePath) {
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(filePath, options);

    int width = options.outWidth;
    int height = options.outHeight;

   // 计算每个像素所占字节数,默认为 ARGB_8888 格式,即 4 字节
   int bytesPerPixel = 4; 

   // 计算总大小
   long sizeInBytes= (long)width * height * bytesPerPixel;

   return sizeInBytes;
}

// 计算资源ID对应的图片大小
public long calculateImageSize(Context context, int resourceId) {
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(context.getResources(), resourceId, options);

    int width = options.outWidth;
    int height = options.outHeight;

   // 计算每个像素所占字节数,默认为 ARGB_8888 格式,即 4 字节
   int bytesPerPixel = 4; 

   // 计算总大小
   long sizeInBytes= (long)width * height * bytesPerPixel;

   return sizeInBytes;
}

这样就可以得到图片的大小。请注意,由于计算结果是以字节为单位的,如果需要更友好地展示(如KB或MB),可以进行相应的转换。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容