汽车公司可能用到的知识点

iOS 获取图片的主题色

2021-12-03  本文已影响0人  iOS开发之家

目录

1.需求背景
2.代码部分
3.使用效果及代码地址

需求背景

代码部分

  1. 将图片按比例缩小,因为后续遍历图片每个像素点,循环次数是图片width x height,如果直接原图去遍历,可能一次循环就要跑几十万、百万次,需要时间非常久,所以要将图片缩小。
  2. 获取图片的所有像素的RGB值,每组RGB使用数组存储(可以根据自己的需求过滤部分颜色),然后用Set将数组装起来。
  3. 统计Set里面相同次数最多的色值,即是整个图片的主题色

如果你正在面试,或者正准备跳槽,不妨看看我精心总结的面试资料:https://gitee.com/Mcci7/i-oser 来获取一份详细的大厂面试资料 为你的跳槽加薪多一份保障

swift实现代码:

因为里面是两个for循环,时间复杂度是On^2,如果设置的width和Height比较大的话,会比较耗时,在主线程里面执行可能会卡住,所以使用了gcd开启子线程去执行,完成后回到主线程执行回调。

外部使用:

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

OC实现代码:

使用效果及代码地址

demon地址

作者:lanlinxl
链接:https://juejin.cn/post/7034052595320619021

上一篇 下一篇

猜你喜欢

热点阅读