<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          iOS 獲取圖片的主題色

          共 942字,需瀏覽 2分鐘

           ·

          2022-04-16 00:06

          ????關(guān)注后回復(fù)?“進群”?,拉你進程序員交流群????

          作者:掘金 lanlinxl

          https://juejin.cn/post/7034052595320619021


          需求背景

          • 有時候我們會有這樣的需求,用戶從相冊選擇一張照片,返回展示的時候,除了展示照片還要讓整體背景也是和照片相近顏色,最近自己寫了一個圖片加水印的項目,想加上此功能,然鵝谷歌搜了一圈發(fā)現(xiàn)全是OC代碼寫的,直接使用好像還存在一些問題,所以本文分別用swift和OC實現(xiàn)相關(guān)功能。

          代碼部分

          • 主要邏輯:
          1. 將圖片按比例縮小,因為后續(xù)遍歷圖片每個像素點,循環(huán)次數(shù)是圖片width x height,如果直接原圖去遍歷,可能一次循環(huán)就要跑幾十萬、百萬次,需要時間非常久,所以要將圖片縮小。
          2. 獲取圖片的所有像素的RGB值,每組RGB使用數(shù)組存儲(可以根據(jù)自己的需求過濾部分顏色),然后用Set將數(shù)組裝起來。
          3. 統(tǒng)計Set里面相同次數(shù)最多的色值,即是整個圖片的主題色

          swift實現(xiàn)代碼:

          因為里面是兩個for循環(huán),時間復(fù)雜度是On^2,如果設(shè)置的width和Height比較大的話,會比較耗時,在主線程里面執(zhí)行可能會卡住,所以使用了gcd開啟子線程去執(zhí)行,完成后回到主線程執(zhí)行回調(diào)。

          外部使用:

          selectedImage.subjectColor({[unowned?self]?color?in
          ????????guard?let?subjectColor?=?color?else?{?return?}
          ?????????self.view.backgroundColor?=?subjectColor
          ????})

          OC實現(xiàn)代碼:

          使用效果及代碼地址

          demon地址:https://github.com/lanlinxl/UIImageSubjectColor

          作者:掘金 lanlinxl

          https://juejin.cn/post/7034052595320619021

          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?面試題?資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

          點擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點這里好文分享給更多人↓↓

          瀏覽 33
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本操B网站 | 欧美亚洲另类在线成人 | 91女人18毛片水多国产 | 精品国产视频在线观看 | 大香蕉伊人在线观看视频 |