美文网首页
Android计算一张图片的大小

Android计算一张图片的大小

作者: 业精于勤_荒于嬉 | 来源:发表于2023-07-31 05:25 被阅读0次

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

    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),可以进行相应的转换。

    相关文章

      网友评论

          本文标题:Android计算一张图片的大小

          本文链接:https://www.haomeiwen.com/subject/rmwspdtx.html