纯CSS实现任意格式图标变色的研究«张鑫旭鑫空间

所以,我要研究下,有没有使用简单的的赋色技术;以及研究下有没有滤镜以外的其它技术可以修改小图标颜色!

结果,还真发现了不少好玩的东西。

先从简单的说起。

有下面这个图标:

如果要变成纯黑色,或者纯白色,则可以这样:

/*图标变黑色*/.black{filter:brightness(0);}/*图标变白色*/.white{filter:brightness(100);}也就是使用亮度滤镜,要想变成黑色,很简单,设置亮度为0即可,保证黑如焦炭;如果想要变成白色,则亮度设成很大很大的值就好了,例如100,保证白如奶昔。

实现后的效果如下截图:

黑白色确实简单,但实际开发时候,往往是黑色图标变成彩色,那可该怎么办呢?

可以实现!

CSS3filter滤镜有调整色调的hue-rotate,有调整饱和度的saturate滤镜,有调整亮度的brightness滤镜,有调整对比对的contrast滤镜等,把这些滤镜进行组合,进行色值变换,总会得到我们希望的颜色的。

关键如何变呢?

使用和转换示意如下GIF:

第一个输入框输入原始的图标颜色,下面输入框输入图片目标颜色,点击“转换”按钮,对应的filterCSS代码就生成了。

由于部分滤镜渲染并非是线性的,因此最终转化后的颜色并非100%完全一致,可能会出现误差。

请不要担心,再次点击“转换”按钮,尝试其他的滤镜组合①,找到最精确的那个filter代码。

举例说明例如,原始色是:#000000,目标色非web安全色,是#f4615c。

填入到工具对应输入框,点击“转换”按钮,结果如下:

可以看到色值误差较大,请不要担心,再多点几次“转换”按钮,尽量找到误差值在2以内的色值,如下GIF示意:

虽然最终色值会有偏差(越远离安全色出现偏差概率越大),但对于用户而言,根本没有影响,华为手机边缘蓝光不也照样使用。对于设计师,也完全不要担心,放心使用,他们是根本无法区分屏幕上#f5615c和设计稿中#f4615c和的差别的。即使是全球几个罕见4色视觉人也无法区分,毕竟是不同设备的显示器。

同一色值可以有多种滤镜组合呈现的,例如黑色转白色,可以亮度滤镜,也可以直接反相滤镜。每次点击工具页的“转换”按钮,都会会尝试一种匹配。其底层是不同视觉系数的计算值的相互组合,类似计算灰度有下面两种算法:

还是这个图标:

下面要变成#f4615c色值图标。

原始值是#2486ff,目标值是#f4615c,借助工具,得到如下CSS:

filter:invert(52%)sepia(82%)saturate(2494%)hue-rotate(327deg)brightness(104%)contrast(92%);结果如下截图:

这个是相比上面的滤镜更好的实现方法,性能要比滤镜好,色值定义也更简单。

如下HTML和CSS代码就好了:

.colorful{display:inline-block;width:32px;height:32px;background-color:#f4615c;-webkit-mask:url(./xin.svg)no-repeat;mask:url(./xin.svg)no-repeat;-webkit-mask-size:100%100%;mask-size:100%100%;}CSS3mask默认是基于透明度实现遮罩效果的。也就是实色区域显示,透明区域隐藏。因此,我们只需要把目标图标颜色#f4615c作为背景色,然后原始图标(无论什么颜色都可以)作为遮罩图片,效果就出来了。

效果如下截图:

本方法有2个限制,首先原图片必须是纯黑色的,如果是彩色的,颜色会混淆在一起;其次非图形部分必须是白色,不能是透明,因为透明会被当做黑色处理。

换成下面这个黑色白底图标:

.colorful{display:inline-block;width:32px;height:32px;background-image:url(./xin.png),linear-gradient(#f4615c,#f4615c);background-blend-mode:lighten;background-size:100%;}混合模式lighten可以让任意颜色和黑色混合的时候,保留原始色彩。由于我们图标黑色白底,和任意渐变图片混合,都会在黑色图形区域留下渐变图形的颜色。于是,效果达成!

更新于2022-01-31

正文部分结束,下面可以安心地东扯西扯了。

filter色值转换工具我一开始想得比较天真,颜色值不是可以HSB表示嘛(web中是HSL,PS中是HSB,两者有差别,),不正好对应filter的色调,饱和度和亮度滤镜嘛,我想计算出前后颜色的HSB值,再一比较,设置在filter上,色值不就转换好了。

还是得站在巨人的肩膀上,对原算法进行了一些优化,包括支持任意颜色filter转换,原算法是仅黑色;优化了误差的算法,原算法有较大问题,有时候明明视觉差异明显,却显示误差很小;增加了滤镜转换之后的渲染颜色的输出。就这样一个纯filter变色的在线小工具诞生了。

虽然这个filter变色工具很有技术含量,但是,并不表示使用filter是最好的图标变色方法。如果条件允许(有HTML操作权限),我建议优先使用mask遮罩实现任意图标的变色,兼容性更好,性能更好,颜色100%精准,可以在移动端项目中使用,如果对于一些杂牌Android不在意的话。

如果我们的图标是用的或者标签直连的,则此时,使用filter变色要更合适。

没有无用的技术,只是适用场景宽窄有别而已!

如果是PNG图标,则多半就要考虑使用本文提供的方法了。

好,扯完了。

感谢阅读,欢迎纠错!欢迎交流!

(本篇完)

名称(必须)

邮件地址(不会被公开)(必须)

网站

算出來有時候差很多

颜色转换工具的成功率不太高,基本要点一两百次才能遇到2以下,不知道原理,是否可以讲解下,或者放出来一起优化一下

滤镜转换颜色工具,咋实现的呀,想看看源码

牛的很呀

工具太强了

brightness(100)变换白色会有问题有可能会在图片周围糊一圈

用filter:brightness(0)invert(1);可以避免出现的坑

为啥我的原始色是#1e2c24,目标色是#050318的时候试了几万次误差还是很大。

THE END
1.CSS修改png图标颜色2. 升级功能:改变图标颜色 对于上述html结构,我们想要插入一个黑色的定位图标。而目前的素材只有一个蓝色的图标 location.png .icon{display:inline-block;position:relative;height:30px;width:40px;}.icon-del{background:url(location.png)no-repeat;height:100%;width:100%;display:inline-block;} 这么写...https://www.jianshu.com/p/f2cc9c93dd9b
2.关于软件图标颜色的问题关于软件图标颜色的问题我发现现在不管是word,excel,还是ppt,打开以后图标都是wps的蓝色图标,辨识度太低,当我多开应用在三种文件切换的时候经常找不到文件,这是你们把三种文件合并以后导致的,建议你文件可以合...https://www.wps.cn/learning/room/d/183879
3.颜色识别图标图片免费下载颜色识别图标素材颜色识别图标模板千图网为您找到352359张颜色识别图标相关素材,千图网还提供颜色识别图标图片,颜色识别图标素材, 颜色识别图标模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/yanseshibietubiao.html
4.教您如何选择APP图标的颜色产品的目标用户是什么,产品的个性是什么,图标将会出现在用户设备上的什么地方,等等,这些都是在选择图标颜色时需要考虑的问题。 1、红色使人想到兴奋,青春,强烈。 2、橙色是一种友好、欢快的颜色。越来越多的公司在选择图标颜色时开始避开常见的红色和蓝色,所以橙色逐渐成为一种流行的图标颜色。 http://www.lei-niao.com/news_5743.html
5.各种颜色的图标图案大全熊猫办公精心为用户挑选80张高清精美颜色图标图片、支持专业级颜色图标设计素材下载,更多风格的颜色图标,免抠元素,卡通手绘素材图片、图标图案、免抠矢量图,尽在熊猫办公。https://www.tukuppt.com/speciall/yansetubiao0419.html
6.怎么改变图标字体颜色?怎么改变图标字体颜色? 一加Ace 2 Pro 怎么改变图标字体颜色? #ColorOS 14.0https://bbs.oneplus.com/thread/1450498081547091974
7.Win10电脑文件夹图标颜色怎么改?文件夹颜色方法在Win10系弘下,文件夹的图标颜色清一色的都是黄色,相信很多朋友都不太喜欢了,那么如何更改颜色呢?这里小编给大家分享一个方法,有需要给文件夹改颜色的朋友可以学习一下呀! 需要的一款工具:更改文件夹图标工具 1、先安装这个工具,安装后打开是这样的 http://m.winwin7.com/JC/15870.html?ivk_sa=1024320u
8.华为手机桌面图标变成灰色的了怎么办?公司事务在手机桌面选择设置。打开设置后滑动到最下方位置。选择打开辅助功能。选择进入无障碍选项。在这个界面选择关闭颜色反转。关闭手机颜色反转功能,返回桌面即可查看图标颜色恢复。 演示机型:华为P40 系统版本:Android 11 以华为P40,Android 11为例。 1、在手机桌面选择设置。 http://www.027yaju.cn/gongsishiwu/343717.html
9.颜色表图标素材免费下载觅元素为您提供颜色表图标素材免费下载,此作品编号为jjrqxupuai,图片大小为 0.01M,图片规格为 512*512 | 72dpi,下载更多图片素材就来觅元素!https://www.51yuansu.com/sc/jjrqxupuai.html
1.图标的颜色怎么修改呀·Issue#330·PanJiaChen/vue我使用了@yuanyuanyuan给的建议从http://iconfont.cn/ 下载默认图标是可以通过color改变图标颜色(没有fill属性),但发现其中也有不可以通过color改变图标颜色(有fill属性)。 其中“如果您选择一个把颜色调整为白色或其他颜色,就可以看到变色效果了”,我也实践了一下,我这边是不可以的(有fill属性) 然后我猜想可能和...https://github.com/PanJiaChen/vue-element-admin/issues/330
2.ChangeColor下载图标颜色修改软件v1.0绿色版ChangeColor是一款非常简单且实用的图标颜色修改软件,顾名思义,通过这款软件,可帮助用户快速将图标颜色进行修改,有的时候,我们可能会用到不同颜色的图标,想要修改这些图标的颜色,就可以用到这款软件,其具备了简洁直观的操作界面,旨在为用户一个一套最简单的图标颜色修改方案,只需添加图片,一键即可调整图片颜色,根据实...https://www.xiazaiba.com/html/114346.html
3.如何制作自己的APP图标资讯你有没有想过流行的APP图标是如何蓬勃发展的?可识别的风格,品牌色彩,没有不必要的元素。由于可识别性,用户不仅可以按功能对应用程序进行排序,还可以按图标颜色对应用程序进行排序。 那么如何为APP设计图标呢? 创建应用程序并为其命名是非常重要的过程。它们脱颖而出,掩盖了应用程序的图标。但是用户会通过图片来识别...https://www.appzzgs.cn/newsinfo.php?id=131
4.纯css修改图标颜色的五种方式css改变图标颜色纯css修改图标颜色的五种方式 原图 我们以目标色红色为例,逐一看是如何实现的 利用filter属性进行修改 1、filter:drop-shadow+ transform 移位变色 .img-wrapper-1 { overflow: hidden; } .img-wrapper-1 img { transform: translateY(-100%); filter: ...https://blog.csdn.net/weixin_42202310/article/details/129209403
5.定义图标和主题颜色PWA 可以为标题栏定义一组图标和主题颜色。 定义图标 在Windows 中,用户可以通过图标识别应用。 图标显示在任务栏、“开始”菜单中,以及系统设置等其他位置。 PWA 可以配置操作系统应使用哪些映像文件在这些不同位置显示图标。 可以根据上下文提供多个映像供操作系统选择。 在Web 应用清单文件中,应用图标是使用 icons ...https://learn.microsoft.com/zh-cn/microsoft-edge/progressive-web-apps-chromium/how-to/icon-theme-color
6.2022图标icon设计趋势大全!你pick哪一个?数字化时代背景,创建悬停状态或动画效果的icon图标能给用户带来强烈的科技感。提及网络图标,我们最常见的便是通过一组配对的图标,Pixso资源社区的edit类图标,在一个填充了黄色的图标周围,创建没有颜色填充的图标。如果UI设计师想要在图标上创建图表的效果,就需要考虑到图标颜色填充这一点。 https://pixso.cn/designskills/2022tubiaosjqs/
7.iOS18使用技巧:如何更改iPhone桌面图标颜色在iOS 18中,苹果引入了多项个性化功能,包括自由排列桌面应用程序(App)和更改桌面图标颜色。如果你想让iPhone桌面更具个人风格,更新到iOS 18后,可以根据自己的壁纸颜色轻松调整图标颜色。无论你想使用浅色、深色或其他颜色,都能一键应用到桌面上的所有App和小工具。 https://www.fonegeek.cn/change-iphone-app-colors-theme-ios-18.html
8.如何在Excel中更改条件格式的图标集颜色?当您使用Excel中设置的条件格式图标时,有三个颜色图标。 如果相对值大于所有值的67%,则图标显示为带有绿色的向上箭头;如果相对值大于所有值的33%但小于所有值的67%,则图标显示为带有黄色的水平箭头。值小于所有值的33%,该图标显示为带有红色的向下箭头。 您是否曾经尝试过更改这些图标设置的颜色,如下所示的屏幕截...https://zh-cn.extendoffice.com/documents/excel/4765-excel-change-icon-set-color.html
9.Instagram更新图标,颜色越来越刺眼了5月16日,Meta公司旗下知名社交平台 Instagram 更新应用程序,其中最为明显的变化是,更新后的App图标颜色变得更加明亮鲜艳。这是自2016年 Instagram 将写实的「立...https://www.logonews.cn/instagram-new-colors.html
10.Noticons轻松为Notion添加可自定义颜色背景的个性化图标和其他图标网站相比,Noticons 不仅仅是提供给你可以直接使用的图标,更重要的是它可以让你定制图标的颜色,你会看到在图标搜索框的下方会有一个颜色工具,你可以用它来改变每个图标的颜色,可以设置图标颜色以及对应的背景颜色,还有一个很方便的地方就是它会记录下你之前选择过的颜色,这样当下次再需要图标就不需要再设置...https://www.v1tx.com/post/noticons/
11.win10正式版开始菜单图标颜色变了怎么办?windows10Windows系列今天正聊天呢 发现我的win10系统的电脑下面的任务栏和开始菜单和里面的图标颜色都变成了橙色的,看着特别别扭,想改回装机时候的默认蓝色。 1、以前在win7系统的时候也调整过这个主题颜色,所以轻车熟路在桌面上右键点击鼠标,然后选择个性化。 2、打开的对话框中的【背景】一栏中,在右侧可以看到预览中的效果和我们电脑...https://www.jb51.net/os/win10/364410.html
12.支付宝知乎AppStore的图标为什么都是蓝色的?译者按:天空的颜色是蓝色的,大海的颜色是蓝色的,支付宝和饿了么的 app 图标颜色也是蓝色的。为什么蓝色这么好看?为什么那么多 app 的主色调是蓝色? 微信公众号 AppSo 今天分享的这篇文章,带你进入蓝色世界,了解蓝色背后的故事。 你有没有发现,很多图标都是蓝色的,比如支付宝、饿了么、App Store、Safari、LinkedI...https://www.36kr.com/p/5088279
13.电脑图标字体颜色设置好酷屋教程网小编为您收集和整理了电脑图标字体颜色设置的相关教程:电脑图标字体颜色设置怎么弄,下面我们来教教你吧。1、鼠标右键单击桌面空白处,选择个性化,进入页面2、点击下方的窗口颜色,选择高级外观设置3、弹出窗口,将项目设置为已选定的项目4、然后选择字体,设置字体 ...https://www.haoku5.com/shuma/640d6f4d308c6e2ec80e7717.html