LKImageKit開源圖片組件
03-03
在Swift大會上答應大家的組件現在終於開源了,歡迎大家捧場,覺得不錯請移步Github點個star~
為什麼拖這麼久?主要一方面是騰訊的流程比較長,一方面是不斷的在對組件進行優化。一些細節原理可以參考我的另一篇文章@Swift開發者大會——如何打造易擴展的高性能圖片組件。當然後續還做了很多優化沒有在這篇文章中體現出來,後續我會在整理整理髮一篇新的附:騰訊官方開源公告
LKImageKit 是一個高性能的圖片框架,包括了圖片控制項,圖片下載、內存緩存、磁碟緩存、圖片解碼、圖片處理等一系列能力。合理的架構和線程模型,並特別針對不同場景進行優化,能充分發揮硬體的性能。
該框架具有高度的擴展性。在此框架下,開發者可以自定義圖片框架中的任何一個部分,比如:自定義圖片顯示邏輯、自定義緩存、自定義下載組件、自定義解碼器、自定義圖片處理演算法等等。
該組件旨在提供 iOS 平台上使用最簡單,功能最強大的高性能圖片解決方案。
組件特性:
- 提供演示視頻和 DEMODEMO中演示了如何在圖片牆場景的數千張圖片下,配合預載入、優先順序控制、分級載入等技術,實現圖片在快速滑動場景的高速下載和顯示
- 模塊插件化可定製緩存、解碼、載入、繪製等多個模塊
- 支持取消不再顯示的圖片迅速取消請求,節約資源佔用
- 支持優先順序、優先順序可動態調整通過對不同區域優先順序的設置,使頁面載入獲得更好的體驗
- 支持預載入
可以預先載入圖片,預載入和圖片正常顯示會自動合併
- 動圖支持支持多圖動態播放,包括正向播放、逆向播放、來回播放等
- 雪碧圖支持提供將雪碧圖解碼成序列幀的能力
- 濾鏡支持支持在圖片顯示前非同步對圖片進行濾鏡處理
- 漸進式載入支持圖片邊下載邊顯示
- 多級載入
支持多級請求,比如先載入小圖再載入大圖
- 後台解碼使用後台線程解碼,提升頁面流暢度
- 請求合併相同類型的請求會被合併,不會導致重複的運算和下載
- 並發數控制可以分別對載入、解碼、處理等多個模塊進行分別並發控制
- API調用順序無關
無需考慮 API 調用順序,並不需要將 setURL 作為發送請求的介面
https://www.zhihu.com/video/951876000376664064
推薦閱讀:
※Top10機器學習開源項目發布,歷時一個月評出 | 附GitHub地址
※「開源」創造者為你論述這一術語的前世今生
※2017年免費可商用字體大全(附打包下載)
※絕地求生外掛,那麼你認為源代碼開源是怎樣的?