[英]How to get the image width and height from url without downloading the full image in Android?
Java中有什么方法可以在不傳輸或下載的情況下獲取圖像的寬度和高度?
提到使用ImageIO的方法,但是ImageIO在Android上不可用。
Android具有BitmapFactory,可以將圖像解碼以獲取寬度和高度,而無需將整個圖像加載到內存中,但是它僅適用於文件。
所以問題就在Android上,有沒有一種方法可以從Web網址中獲取圖像的寬度和高度,而無需下載整個圖像?
不下載圖像是不可能的。 除非並且直到下載圖像,否則無法應用BitmapFactory
。
在Java中,使用ImageReader.getHeight(int)和ImageReader.getWidth(int)通常可能只讀取圖像標頭,因此圖像不會完全下載,不確定是否可以在Android中使用:
public static Dimension getImageDimensionFromUrl(final URL url)
throws IOException {
try (ImageInputStream in = ImageIO.createImageInputStream(url.openStream())) {
final Iterator<ImageReader> readers = ImageIO.getImageReaders(in);
if (readers.hasNext()) {
final ImageReader reader = readers.next();
try {
reader.setInput(in);
return new Dimension(reader.getWidth(0), reader.getHeight(0));
} finally {
reader.dispose();
}
}
}
return null;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.