千家信息网

如何利用CSS获取图片主题色

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章将为大家详细讲解有关如何利用CSS获取图片主题色,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。背景起因是微信技术群里有个同学发问,有什么方法能够获取图片的主
千家信息网最后更新 2024年11月23日如何利用CSS获取图片主题色

这篇文章将为大家详细讲解有关如何利用CSS获取图片主题色,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

背景

起因是微信技术群里有个同学发问,有什么方法能够获取图片的主色呢?有一张图片,获取他的主色调:

利用获取到的这个颜色值,来实现类似这样的功能 -- 容器中有一张图片,希望背景色可以适配图片的主色,像是这样:

大家出谋划策,有说利用 Canvas 进行计算的,有推荐专门的开源库的,都挺好。

那么,利用 CSS,能不能实现这个功能呢?

听起来好像有点痴人说梦,CSS 还能实现这个效果?emm,利用 CSS 确实可以通过一种讨巧的方式,近似的获取到图片的主色调,在对主色的要求不是特别精确的情况下,不失为一种办法,下面一起来一探究竟。

利用 filter: blur() 及 transform: sacle() 获取图片主题色

这里,我们利用模糊滤镜以及放大效果,可以近似的拿到图片的主题色。

假定我们有这样一张图片:

利用模糊滤镜作用给图片:

div {     background: url("https://i0.wp.com/airlinkalaska.com/wp-content/uploads//aurora-2.jpg?resize=1024%2C683&ssl=1");     background-size: cover;     filter: blur(50px); }

看看效果,我们通过比较大的一个模糊滤镜,将图片 blur(50px),模糊之后的图片有点那感觉了,不过存在一些模糊边缘,尝试利用 overflow 进行裁剪。

接下来,我们需要去掉模糊的边边,以及通过 transform: scale() 放大效果,将颜色再聚焦下,稍微改造下代码:

div {     position: relative;     width: 320px;     height: 200px;     overflow: hidden; }  div::before {     content: "";     position: absolute;     top: 0;     left: 0;     right: 0;     bottom: 0;     background: url("https://i0.wp.com/airlinkalaska.com/wp-content/uploads//aurora-2.jpg?resize=1024%2C683&ssl=1");     background-size: cover;     // 核心代码:     filter: blur(50px);     transform: scale(3); }

结果如下:

这样,我们就利用 CSS,拿到了图片的主色调,并且效果还是不错的!

完整的代码你可以戳这里:CodePen Demo -- Get the main color of the image by filter and scale[1]

不足之处

当然,该方案也是存在一定的小问题的:

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. 只能是大致拿到图片的主色调,无法非常精确,并且 filter: blur(50px) 这个 50px 需要进行一定的调试

  3. 模糊滤镜本身是比较消耗性能的,如果一个页面存在多个这种方法获取到的背景,可能对性能会造成一定的影响,实际使用的时候需要进行一定的取舍

关于"如何利用CSS获取图片主题色"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

图片 效果 主题 色调 滤镜 代码 篇文章 背景 不错 精确 功能 性能 技术 方法 更多 颜色 实用 出谋划策 痴人说梦 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 在中国有什么打车软件开发 数据库技术与应用大纲 六大区块链项目入围网络安全 民警进班级网络安全美篇 服务器操作系统的分类和区别 济南口碑好的存储服务器客服电话 北京鑫万家软件开发怎么样 严格落实手机网络安全管理 台式机电脑服务器功率一般多少 云平台的服务器价格 延安市网络安全培训机构 数据库数据修改 华为服务器传统模式怎么删除阵列 网络安全特征有哪些 网络安全的技术 网络安全准入修复引导 奉贤区常规软件开发参考价格 服务器公网私网怎么验证 数据库的可恢复性的解释 手机卡网络安全黑名单 软件开发中DTT表示什么 济宁学院计算机系网络安全专业 网络安全问题及重要性 百威收银系统无法打开数据库 职高学网络技术 进行具体的网络安全 怎么检查服务器是否联网 玄元剑仙有多少服务器 鄂州软件开发公司排名 cf埃及服连接不到服务器
0