我想在不读取整个文件的情况下在 Android 中获得位图的尺寸。
我尝试使用推荐的inJustDecodeBounds
和InputStream
记录read()
s 的自定义。不幸的是,基于此,AndroidBitmapFactory
似乎读取了大量字节。
类似于: Java/ImageIO 在不读取整个文件的情况下获取图像尺寸?对于 Android,不使用 ImageIO。
我想在不读取整个文件的情况下在 Android 中获得位图的尺寸。
我尝试使用推荐的inJustDecodeBounds
和InputStream
记录read()
s 的自定义。不幸的是,基于此,AndroidBitmapFactory
似乎读取了大量字节。
类似于: Java/ImageIO 在不读取整个文件的情况下获取图像尺寸?对于 Android,不使用 ImageIO。
你使用 inJustDecodeBounds 是对的。将其设置为 true 并确保在解码中包含选项。这只是读取图像大小。
无需读取流。只需在解码中指定路径。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(<pathName>, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
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;