gpt4 book ai didi

java - 如何在不下载 Java 的情况下获取网站图像的尺寸?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:52:18 24 4
gpt4 key购买 nike

我正在寻找一些代码来获取 Java 网站上图像的尺寸,而无需先下载它。这个想法是,如果图像太大,我就不会下载文件并返回一条错误消息,这样用户就不会输入导致文件太大的 URL。它将占用图像的高度和宽度。

我从 StackOverflow 上的另一个用户那里知道这段代码,当您在系统上有一个文件时执行此操作:

private Dimension getImageDim(final String path) {
Dimension result = null;
String suffix = this.getFileSuffix(path);
Iterator<ImageReader> iter = ImageIO.getImageReadersBySuffix(suffix);
if (iter.hasNext()) {
ImageReader reader = iter.next();
try {
ImageInputStream stream = new FileImageInputStream(new File(path));
reader.setInput(stream);
int width = reader.getWidth(reader.getMinIndex());
int height = reader.getHeight(reader.getMinIndex());
result = new Dimension(width, height);
} catch (IOException e) {
log(e.getMessage());
} finally {
reader.dispose();
}
} else {
log("No reader found for given format: " + suffix));
}
return result; }

但是,我不知道如何将其转换为可用于 URL 对象的内容。

编辑:我对像素宽度和像素高度感兴趣。

最佳答案

抱歉,我没有代码可以展示给您,但我可以提供一般性建议。您对图像的大小(宽度 * 高度像素)或文件的大小(您需要下载的字节数)感兴趣吗?

要获取文件大小,您可以尝试向远程服务器发出 HTTP HEAD 请求。这将在不下载文件的情况下返回 header - ContentLength header 可能包含文件的大小。也可能不是,它是可选的。

获取以像素为单位的宽度和高度需要至少下载文件的一部分。这些值以 JPEG 文件格式存储在 SOI(图像开始)记录中,应该靠近文件的开头。您可以下载图像的第一部分并解析返回的字节以查找 SOI 标记 (0xFFD8)。

关于java - 如何在不下载 Java 的情况下获取网站图像的尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10592859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com