一个模块用于原生、MIUI 和 HyperOS,使用算法转换通知白块图标为可辨认的图标。
- Android 8.1 ~ AOSP 主线
- HyperOS
- MIUI 12.5
![]() |
![]() |
![]() |
![]() |
- 判断并缩小超过系统允许的图标
- 映射图标像素为二维坐标系并计算中心坐标
- (MIUI) 检测图标透明边缘并裁剪掉
- (MIUI 和 HyperOS) 判断图标是否有营销横幅并替换为完美图标 (需要自行安装)
- (HyperOS) 判断图标是否是天气图标并替换为带温度的图标 (HyperOS 本身有 bug 导致失灵)
- 计算除了透明像素之外的像素的平均流明
- 量化边缘像素最多的颜色
- 计算边缘像素最多颜色与边缘像素在 Lab 颜色空间下的欧几里得距离用于判定是否有边框
- 判断图标背景是亮色调还是暗色调
- 使用 K-means 量化器取图标主要颜色
- 根据背景反色前景并去边
- 判断图标实际内容区域并基于视觉中心裁剪
- 最终结果输出并缓存图标到 WeakHashMap