【问题标题】:Change color of image via CSS通过 CSS 更改图像颜色
【发布时间】:2017-05-30 01:00:53
【问题描述】:

我正在尝试使用 css 将图像更改为红色。 这就是我目前所拥有的

img {
 -webkit-filter: invert(90%); filter: invert(90%);
 }

https://jsfiddle.net/md1/

【问题讨论】:

标签: html css css-filters


【解决方案1】:

你需要组合两个过滤器saturatehue,下面是一个可能的组合以获得“红色”(如果你使用颜色选择器,它将生成默认的网络“红色” - @987654324 @ 或者只是#F00,因为你可以选择你的红色,更强或更轻。

img {
  webkit-filter: saturate(100) hue-rotate(-140deg);
  filter: saturate(100) hue-rotate(-140deg)
}
<img class="screencap" src="https://i.stack.imgur.com/speoA.png">

更新

据称,在第一个 sn-p 中,有一个错误(在与 @kaiido 聊天之后),它只是在标签 img 中使用 Windows 使 FF 在 FF 中变为红色 - 同时在其他操作系统的其他浏览器中保持粉红色, (因此我将在 bugzilla 中提交错误)

所以有一种方法可以跨浏览器使用混合过滤器

img {
  -webkit-filter: brightness(0.6)contrast(3.4)hue-rotate(217deg)saturate(9.9);
  filter: brightness(0.6)contrast(3.4)hue-rotate(217deg)saturate(9.9);
}
&lt;img class="screencap" src="https://i.stack.imgur.com/speoA.png"&gt;

【讨论】:

    【解决方案2】:

    使用某些滤镜样式更改 PNG 图像的颜色

    <!DOCTYPE html>
    <html>
      <head>
        <title>Title of the document</title>
        <style>
          body {
            background-color: #03030a;
            min-width: 800px;
            min-height: 400px
          }
          img {
            width: 20%;
            float: left;
            margin: 0;
          }
          /*Filter styles*/
          .saturate {
            filter: saturate(3);
            -webkit-filter: saturate(3);
          }
          .grayscale {
            filter: grayscale(100%);
            -webkit-filter: grayscale(100%);
          }
          .contrast {
            filter: contrast(160%);
            -webkit-filter: contrast(160%);
          }
          .brightness {
            filter: brightness(0.25);
            -webkit-filter: brightness(0.25);
          }
          .blur {
            filter: blur(3px);
            -webkit-filter: blur(3px);
          }
          .invert {
            filter: invert(100%);
            -webkit-filter: invert(100%);
          }
          .sepia {
            filter: sepia(100%);
            -webkit-filter: sepia(100%);
          }
          .huerotate {
            filter: hue-rotate(180deg);
            -webkit-filter: hue-rotate(180deg);
          }
          .opacity {
            filter: opacity(50%);
            -webkit-filter: opacity(50%);
          }
        </style>
      </head>
      <body>
        <h2>Change PNG image color</h2>
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="original">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="saturate" class="saturate">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="grayscale" class="grayscale">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="contrast" class="contrast">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="brightness" class="brightness">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="blur" class="blur">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="invert" class="invert">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="sepia" class="sepia">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="huerotate" class="huerotate">
        <img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="opacity" class="opacity">
      </body>
    </html>
    

    【讨论】:

      【解决方案3】:

      您必须使用滤镜功能为图像赋予颜色。例如将白色转换为黑色,反之亦然,像它一样使用 filter .invert(100%)。

      【讨论】:

        【解决方案4】:
        img {
         filter:   saturate(100) hue-rotate(241.5deg);
        }
        

        【讨论】:

        • 我想让我的朋友变成红色而不是粉红色
        • 我已将答案编辑为最接近红色的答案。使用 hue-rotate 功能尝试一下,以尝试更接近您所追求的红色的确切色调
        猜你喜欢
        • 2016-07-12
        • 2015-04-02
        • 2018-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-01
        • 2016-12-13
        相关资源
        最近更新 更多