我试图加载图像从URL
到UIIMageView
。它工作正常,但我想下载图像在一个较低的分辨率/大小,因为它需要太长的时间来加载。
我试过使用AFNetworking+UIImage
类,但性能是一样的。
[iv setImageWithURL:[NSURL URLWithString:@"http://cegamers.com/wp-content/uploads/2011/06/automaton.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];
字符串
有谁知道图书馆或者其他什么方法吗?
2条答案
按热度按时间thtygnil1#
一般来说,没有服务器端的帮助你是做不到的。通常你会依赖服务器为你生成缩略图。有图像转换代理服务器,它会下载完整的图像服务器端,并为你提供一个调整大小的版本。
如果没有任何类型的服务器端插件,选项是有限的,不是很好。
如果图像是逐行/隔行格式,那么你只能下载文件的一部分,但这将是一个低质量的近似。
不幸的是,您无法提前知道需要多少数据,因此最好的办法是请求整个图像并在看到有足够的数据时关闭TCP/IP连接(希望
[NSURLConnection cancel]
这样做)。或者,您可以使用HTTP
Range
请求下载一些任意的少量数据,然后估计您还需要下载多少数据(这可能会保存一些带宽,但会花费延迟)。我不知道iOS SDK中有什么可以让你检查你有多少个部分下载的JPEG文件的渐进式扫描,所以你可能需要用libjpeg或your own JPEG parsing来弄脏你的手。
但如果你能在服务器端下载整个图像并生成一个合适的缩略图,那就更容易了。
igetnqfo2#
是的。如果你在imgur上的任何直接图片链接中的img_hash末尾添加“s”,那么你就会得到一个小方块版本。
https://i.stack.imgur.com/sGMvI.jpg <-直接链接
http://i.imgur.com/DkDdKs.jpg <-小正方形版本。注意多出来的s