css - 使用 CSS3 Filter 改变特定颜色

标签 css filter colors rgb

目前我有一个 .png - 图像只包含两种颜色的白色(#FFFFFF)和红色(#EA3D05) 并且我想使用 CSS 滤镜更改此图像的颜色。特别是我需要将白色替换为黑色 (#000000) 并保持红色不变。

我目前的做法是使用

filter: invert(100%);

这将使用白色像素的黑色,但也会影响红色。我认为现在可以将(现在是蓝色像素)改回红色(#EA3D05),因为其他像素是黑色的。有什么办法可以实现吗?

最佳答案

您可以考虑使用 filtermix-blend-mode 来近似:

.box {
  width: 200px;
  height: 200px;
  background: radial-gradient(#EA3D05 50%, #fff 50%);
  border: 1px solid #EA3D05;
}

.wrapper {
  display: inline-block;
  position: relative;
}

.wrapper::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  /* adjust below until you get closer */
  background: #EA3D05;
  mix-blend-mode: hue;
}
<p>Original image</p>
<div class="box"></div>

<p>New image</p>
<div class="wrapper">
  <div class="box" style="filter:invert(100%);"></div>
</div>

关于css - 使用 CSS3 Filter 改变特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61438375/

相关文章:

Javascript 标签式搜索框

html - 如何将 <p> 元素置于 <div> 容器的中心?

html - 如何使用始终可见的侧边栏正确布局正文?

C++/OpenGL/SFML 顶点着色

git - 在 git-diff 的输出中给空白着色

css - 使用浏览器大小调整 div 的大小? (不是一个简单的问题)

空列表上的 Django 查询集过滤器

javascript - 从数组中过滤在给定键处具有相同值的对象

security - Grails过滤器:无法使其正常工作!

c# - 为变量或方法赋予不同的颜色