2013-01-16 110 views
2

我正試圖從URL加載圖像到UIIMageView。 它工作正常,但我想以較低的分辨率/大小 下載圖像,因爲它加載時間過長。是否可以從網站下載低分辨率的圖像?

我曾嘗試使用AFNetworking+UIImage類,但其性能相同。

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

任何人都知道如何一個庫或某種方式呢?

+3

你只能做這個服務器端。如果您控制了服務器,您可以在其上設置參數來指定大小,然後服務器在將其發送給您之前調整大小。 – Fogmeister

回答

1

是的。如果您只是在imgur上的任何直接圖像鏈接中將「s」添加到img_hash的末尾,那麼您可以獲得它的小方形版本。

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

+0

他沒有使用imgur ...他可以重新上傳一個較小的尺寸,如果這就是他想要做的那樣...... – 2013-01-22 22:51:54

1

如果圖像是逐行/隔行格式,那麼您只能下載部分文件,但這將是一種低質量的近似值。

不幸的是,您無法預先知道需要多少數據,所以最好的辦法是要麼請求整個映像,要麼在看到您有足夠的數據時關閉TCP/IP連接(希望[NSURLConnection cancel]會那)。

或者您可以使用HTTP Range請求下載一些任意少量的數據,然後估計您需要下載多少(可能會節省一些帶寬,但這會花費您的延遲)。

我不知道iOS SDK中的任何內容,它可以讓您檢查已獲得的部分下載的JPEG文件的多少個漸進式掃描,因此您可能需要用libjpeg或您自己的JPEG將您的手弄髒解析。

但是,如果您可以下載整個映像服務器端併爲其生成適當的縮略圖,那真的會更容易一些。

+0

它很棒,我該怎麼做呢? –