4

我正在尝试将图像从 加载URLUIIMageView。它工作正常,但我想以较低的分辨率/尺寸下载图像,因为加载时间太长。

我曾尝试使用AFNetworking+UIImage类,但性能是相同的。

    [iv setImageWithURL:[NSURL URLWithString:@"http://cegamers.com/wp-content/uploads/2011/06/automaton.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];

有人知道图书馆或某种方式吗?

4

2 回答 2

2

通常,如果没有服务器端的帮助,您将无法做到这一点。通常你会依赖服务器为你生成缩略图。有图像转换代理服务器将下载完整的图像服务器端,并为您提供调整大小的版本。

没有任何类型的服务器端调整大小,选项是有限的,不是很好。

如果图像是逐行/隔行格式,那么您只能下载文件的一部分,但这将是一个低质量的近似值。

不幸的是,您无法提前知道需要多少数据,因此最好的办法是请求整个图像并在看到您有足够的数据时关闭 TCP/IP 连接(希望[NSURLConnection cancel]这样做)。

或者您可以使用 HTTP 请求下载一些任意少量数据Range,然后估计您还需要下载多少(这可能会节省一些带宽,但会花费您的延迟)。

我不知道 iOS SDK 中有什么可以让你检查你有多少部分下载的 JPEG 文件的逐行扫描,所以你可能需要用 libjpeg 或你自己的 JPEG 解析来弄脏你的手。

但是,如果您可以在服务器端下载整个图像并为其生成适当的缩略图,那真的会更容易。

于 2013-01-18T12:22:48.130 回答
0

是的。如果您只是在 imgur 上的任何直接图像链接中的 img_hash 末尾添加“s”,那么您将获得它的小方形版本。

http://i.imgur.com/DkDdK.jpg <--- 直接链接
http://i.imgur.com/DkDdKs.jpg <--- 小方版。注意额外的 s

于 2013-01-18T11:53:04.433 回答