標籤:

LKImageKit開源圖片組件

在Swift大會上答應大家的組件現在終於開源了,歡迎大家捧場,覺得不錯請移步Github點個star~

為什麼拖這麼久?主要一方面是騰訊的流程比較長,一方面是不斷的在對組件進行優化。

一些細節原理可以參考我的另一篇文章@Swift開發者大會——如何打造易擴展的高性能圖片組件。當然後續還做了很多優化沒有在這篇文章中體現出來,後續我會在整理整理髮一篇新的

附:騰訊官方開源公告

LKImageKit 是一個高性能的圖片框架,包括了圖片控制項,圖片下載、內存緩存、磁碟緩存、圖片解碼、圖片處理等一系列能力。合理的架構和線程模型,並特別針對不同場景進行優化,能充分發揮硬體的性能。

該框架具有高度的擴展性。在此框架下,開發者可以自定義圖片框架中的任何一個部分,比如:自定義圖片顯示邏輯、自定義緩存、自定義下載組件、自定義解碼器、自定義圖片處理演算法等等。

該組件旨在提供 iOS 平台上使用最簡單,功能最強大的高性能圖片解決方案。

組件特性:

  • 提供演示視頻和 DEMO

    DEMO中演示了如何在圖片牆場景的數千張圖片下,配合預載入、優先順序控制、分級載入等技術,實現圖片在快速滑動場景的高速下載和顯示
  • 模塊插件化

    可定製緩存、解碼、載入、繪製等多個模塊
  • 支持取消

    不再顯示的圖片迅速取消請求,節約資源佔用
  • 支持優先順序、優先順序可動態調整

    通過對不同區域優先順序的設置,使頁面載入獲得更好的體驗
  • 支持預載入

    可以預先載入圖片,預載入和圖片正常顯示會自動合併

  • 動圖支持

    支持多圖動態播放,包括正向播放、逆向播放、來回播放等
  • 雪碧圖支持

    提供將雪碧圖解碼成序列幀的能力
  • 濾鏡支持

    支持在圖片顯示前非同步對圖片進行濾鏡處理
  • 漸進式載入

    支持圖片邊下載邊顯示
  • 多級載入

    支持多級請求,比如先載入小圖再載入大圖

  • 後台解碼

    使用後台線程解碼,提升頁面流暢度
  • 請求合併

    相同類型的請求會被合併,不會導致重複的運算和下載
  • 並發數控制

    可以分別對載入、解碼、處理等多個模塊進行分別並發控制
  • API調用順序無關

    無需考慮 API 調用順序,並不需要將 setURL 作為發送請求的介面

https://www.zhihu.com/video/951876000376664064
推薦閱讀:

Top10機器學習開源項目發布,歷時一個月評出 | 附GitHub地址
「開源」創造者為你論述這一術語的前世今生
2017年免費可商用字體大全(附打包下載)
絕地求生外掛,那麼你認為源代碼開源是怎樣的?

TAG:圖片 | iOS | 開源 |