使用 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 属性将彩色图像转换为灰度。

使用 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