在CSS中是否可以使用滤镜为黑白图像添加颜色?我说的是像在Photoshop中一样使用滤镜,一个更好的例子是微软PowerPoint中的滤镜。
我想做的是:我有一个黑色图标的图像文件。我想给它添加一个滤镜,这样图像中的所有东西(背景都是透明的)将具有我通过使用滤镜选择的颜色,这样我就可以拥有我想要的任何颜色的图标。正如我在标题中所说,这是一个PNG图像,所以据我所知,我不能使用SVG滤镜。
我该怎么做呢?我正在尝试使用原始图标为网站写一个主题,但我被困在了这个问题上。
更新:我想使用原始的PNG图像。我不会用SVG或者预先编辑好的PNG来代替它们。
提前谢谢你!
发布于 2016-11-06 08:10:01
你可以用CSS过滤器做到这一点,尽管我根本不推荐这样做:
.colorizable {
filter:
/* for demonstration purposes; originals not entirely black */
contrast(1000%)
/* black to white */
invert(100%)
/* white to off-white */
sepia(100%)
/* off-white to yellow */
saturate(10000%)
/* do whatever you want with yellow */
hue-rotate(90deg);
}
.example-clip {
display: block;
height: 20px;
margin: 1em;
object-fit: none;
object-position: 0 0;
width: 300px;
}
.original {
filter: contrast(1000%);
}
body {
background: #333;
}<img class="colorizable example-clip" src="https://cdn.sstatic.net/Sites/stackoverflow/img/wmd-buttons.svg" />
<img class="original example-clip" src="https://cdn.sstatic.net/Sites/stackoverflow/img/wmd-buttons.svg" />
发布于 2017-10-13 13:56:58
请添加css
filter: brightness(0) invert(1);对于可以工作的图像,将颜色更改为白色
发布于 2020-04-03 11:13:14
sepia()将黄色添加到黑白,其他滤镜现在可以使用该颜色。
.foo {
filter: sepia(1) saturate(5) brightness(0.5) hue-rotate(135deg);
}https://stackoverflow.com/questions/40444540
复制相似问题