使用 CSS background-blend-mode 属性的解决方案
现代浏览器提供了一种使图像灰度化的新方法。
背景混合模式允许我们获得一些有趣的效果,例如灰度转换。
将此属性设置为其在白色背景上的“亮度”值。
使用 background-blend-mode 属性创建灰度图像的示例:
<!DOCTYPE html>
<html>
<head>
<title>文档的标题</title>
<style>
.example {
width: 400px;
height: 300px;
background: url("/notebook.jpeg"), #fff;
background-size: cover;
}
.example:hover {
background-blend-mode: luminosity;
}
</style>
</head>
<body>
<h2>使用 HTML/CSS 将图像转换为灰度</h2>
<div class="example"></div>
</body>
</html>
我们可以动画效果设置 3 层。
第一个是图像,第二个是白黑渐变。
在渐变的白色部分,我们将获得与以前相同的效果。
在渐变的黑色部分,我们将图像与其自身混合,结果是未修改的图像。
使用线性渐变创建灰度图像的示例:
<!DOCTYPE html>
<html>
<head>
<title>文档的标题</title>
<style>
div {
width: 450px;
height: 400px;
}
.example {
background: url("/notebook.jpeg"), linear-gradient(0deg, white 33%, black 66%), url("/pencil.jpeg");
background-position: 0px 0px, 0px 0%, 0px 0px;
background-size: cover, 100% 300%, cover;
background-blend-mode: luminosity, multiply;
transition: all 1.5s;
}
.example:hover {
background-position: 0px 0px, 0px 70%, 0px 0px;
}
</style>
</head>
<body>
<h2>使用 HTML/CSS 将图像转换为灰度</h2>
<div class="example"></div>
</body>
</html>
有很多方法可以在 CSS 的帮助下使图像灰度化。
在这个片段中,我们将学习如何使用 CSS 属性将彩色图像转换为灰度。
使用 CSS filter 属性的解决方案
在下面的示例中,我们将图像放在 <img> 标签中,然后使用过滤器属性的“灰度”值。
用于 Safari、Google Chrome 和 Opera(较新版本)的 -Webkit- 与 filter 属性一起使用。
使用 filter 属性创建灰度图像的示例:
<!DOCTYPE html>
<html>
<head>
<title>文档的标题</title>
<style>
img {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
}
</style>
</head>
<body>
<h2>使用 HTML/CSS 将图像转换为灰度</h2>
<img src="/bg.jpg" width="400" height="300" alt="tree" />
</body>
</html>
结果
使用 HTML/CSS 将图像转换为灰度
现在,让我们看另一个例子。
创建具有悬停效果的灰度图像的示例:
<!DOCTYPE html>
<html>
<head>
<title>文档的标题</title>
<style>
img {
-webkit-filter: grayscale(1);
filter: grayscale(1);
}
img:hover {
-webkit-filter: grayscale(0);
filter: none;
}
h1 {
color: green;
}
</style>
</head>
<body>
<h2>使用 HTML/CSS 将图像转换为灰度</h2>
<img src=" /bg.jpg" width="400" height="300" alt="tree" />
</body>
</html>
日期:2020-06-02 22:15:01 来源:oir作者:oir
