7

我想在不读取整个文件的情况下在 Android 中获得位图的尺寸。

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

类似于: Java/ImageIO 在不读取整个文件的情况下获取图像尺寸?对于 Android,不使用 ImageIO。

4

2 回答 2

14

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

无需读取流。只需在解码中指定路径。

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(<pathName>, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
于 2012-08-18T12:56:27.170 回答
0
java.net.URL imageUrl = new java.net.URL("https://yourUrl.com");
HttpURLConnection connection = (HttpURLConnection)imageUrl.openConnection();
connection.connect();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(connection.getInputStream(), null, options);
int imageWidth = options.outWidth;
int imageHeight = options.outHeight;
于 2017-12-12T18:42:58.823 回答