簡體   English   中英

如何在不下載完整圖片的情況下從url獲取圖片寬度和高度?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM