是否有任何方法可以获取图像尺寸或尺寸而无需从服务器实际下载。
如果图片托管在 https://500px.com/上 或https://imgur.com/ ,我想做一些计算,但我也希望节省带宽。如果图像大小非常大并且用户带宽不太好,我想将图像排队以供日后使用。
假设API不提供此类信息。
答案 0 :(得分:1)
在NSURLConnection的didRecieveResponse委托方法中,您将收到包含此类信息的响应。当且仅当这些已在服务器上设置时:
以下为您提供图像的磁盘大小:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
int state = [httpResponse statusCode];
if (state >= 400 && state <600)
{
// something wrong happen
}
NSLog(@"Download Response : %@", [response description]); // this shows all the info. available by server.
int file_size = [response expectedContentLength];
}
您可以检查尺寸,然后根据需要取消连接。
用于图像尺寸。检查这个question。答案声称 可以使用建议的 fastimage 类别来完成。
完成此操作的唯一合理方法是下载包含图像标题的图像的第一部分。其中包含图像类型(png,jpg ...)和图像尺寸等信息。我相信这个库可以这样做。
答案 1 :(得分:1)
我不知道它是否可能。但这是我的小费。你可以检查文件的大小。见这里:How to know the size of a file before downloading it?
如果大小大于x,则排队图像以供日后使用; - )
来自链接答案的代码:
URL url = new URL("http://server.com/file.mp3");
URLConnection urlConnection = url.openConnection();
urlConnection.connect();
int file_size = urlConnection.getContentLength();
答案 2 :(得分:-1)
如果不下载,就无法计算图像尺寸。