在Android中获取位图的尺寸而不读取整个文件

mpa*_*raz 7 android

我想在Android中获取位图的尺寸而不读取整个文件.

我尝试使用推荐的inJustDecodeBoundsInputStream记录read()s 的自定义.不幸的是,基于此,Android BitmapFactory似乎读取了大量字节.

类似于: Java/ImageIO获取图像尺寸而不读取整个文件?对于Android,不使用ImageIO.

Doo*_*ght 13

你是正确的使用inJustDecodeBounds.将其设置为true并确保在解码中包含选项.这只是读取图像大小.

无需读取流.只需在解码中指定路径即可.

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(<pathName>, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
Run Code Online (Sandbox Code Playgroud)

  • 我需要使用`InputStream`,因为我正在从网络中读取.我想最小化网络流量.`BitmapFactory`还将带有文件的方法转发到流中 - http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/graphics/ BitmapFactory.java#BitmapFactory.decodeFile%28java.lang.String%2Candroid.graphics.BitmapFactory.Options 29% (2认同)