SVG图形滤镜进阶:feColorMatrix实现图像色彩映射

阿涛酱_4424

阿涛酱_4424

2026-06-15

214人浏览

原创

fecolormatrix 是 svg 中最灵活的像素级色彩映射工具,通过 type 属性选择 saturate、huerotate、luminancetoalpha 或 matrix 模式,配合 values 矩阵精准控制 rgba 输出,适用于双色调、主题色适配、负片效果等场景。

svg图形滤镜进阶:fecolormatrix实现图像色彩映射

feColorMatrix 是 SVG 滤镜中控制像素级色彩映射最灵活的工具,它不依赖视觉叠加,而是直接重算每个像素的 RGBA 值。掌握它,就能把灰图变双色调、黑图标转主题色、甚至模拟胶片偏色——关键不在“怎么写”,而在“怎么想颜色”。

理解 type 属性:选对模式,少调 90% 参数

type 决定了你是在做「全局调节」还是「精确映射」:

  • saturate:调整整体饱和度(0=灰度,1=原样,>1=更鲜艳),适合快速增强/弱化色彩氛围
  • hueRotate:绕色相环旋转(单位 deg),但仅对已有色相有效——纯黑/白图标需先用 grayscale(0%) sepia(100%) “唤醒”色相
  • luminanceToAlpha:把亮度转为透明度(白→全透,黑→不透),常用于制作镂空遮罩或胶片感负片效果
  • matrix:完全自定义映射,4×5 矩阵对应 RGBA 输出 = 矩阵 × [R,G,B,A,1],是实现精准着色、单色转多色、通道替换的核心方式

matrix 值怎么填:记住最后一列是“偏移”

values 是 20 个数字(按行排列的 4×5 矩阵),每行控制一个输出通道:

PigX UI 前端开发
PigX UI 前端开发

PigX UI Pro 前端开发指南 - Vue 3 + TypeScript + Element Plus。当用户提到 PigX UI、PigX 前端、lgb-mgui 项目、Vue 3 企业级后台开发、Element Plus 后台开发时使用此技能。

下载
  • 第 1 行 → 新 R 值:R×a + G×b + B×c + A×d + e
  • 第 2 行 → 新 G 值:R×f + G×g + B×h + A×i + j
  • 第 3 行 → 新 B 值:R×k + G×l + B×m + A×n + o
  • 第 4 行 → 新 A 值:R×p + G×q + B×r + A×s + t

例如将纯黑图标(R=G=B=0)映射为 #4285f4(RGB: 66,133,244):

values="0 0 0 0 0.26 0 0 0 0 0.52 0 0 0 0 0.98 0 0 0 1 0"

——前三行最后一列分别是 66/255≈0.26、133/255≈0.52、244/255≈0.98,第四行保持 0 0 0 1 0(不改透明度)。

实用技巧:让滤镜真正可用

  • 滤镜定义必须放在 HTML 的 <svg><defs><filter>...</filter></defs></svg> 中,不能写在 CSS 文件里
  • 调用时用 filter: url(#myFilter),确保 ID 一致且页面内唯一
  • 想让效果更自然?在 <filter></filter> 标签上加 color-interpolation-filters="linearRGB",尤其处理渐变或阴影时颜色过渡更平滑
  • 性能注意:每个 filter: url() 都会触发 GPU 合成,列表页大量图标慎用;优先考虑 fill="currentColor" 这类 CSS 原生方案

常见需求速查表

  • 灰图变蓝调:用 type="matrix" 把灰阶值(R=G=B=L)映射到蓝+白双色,如浅灰→#e0f0ff,深灰→#0d47a1
  • 图标响应主题色:SVG 内联 + fill="currentColor" + 父元素设 color,比 filter 更轻量可靠
  • 制造负片感:组合 feColorMatrix type="matrix" values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0"
  • 提取亮度通道做遮罩:配合 luminanceToAlpha + feComposite operator="in" 实现基于明暗的局部覆盖

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

前端开发

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2323

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4983

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6070

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5598

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

783

5

css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

1820

10

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.01

2566

5

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

2023.10.23

3831

6

canva可画使用技巧汇总
canva可画使用技巧汇总

本专题汇集了PHP中文网精心整理的Canva可画新手使用技巧大全,专为零基础用户打造。无论你是想制作精美海报、PPT还是社交媒体配图,这里都有从注册登录、模板搜索到AI辅助设计、导出分享的全流程保姆级教程。通过深入浅出的图文指南,帮助你快速跨越设计门槛,轻松掌握Canva可画的实用操作,让每个人都能成为设计达人!

2026.05.19

224

21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
svg中文手册
svg中文手册

共0课时 | 0.3万人学习

SVG 教程
SVG 教程

共20课时 | 20.4万人学习