【问题标题】:Invert colors of an image in CSS or JavaScript在 CSS 或 JavaScript 中反转图像的颜色
【发布时间】:2012-10-30 19:39:38
【问题描述】:

如果可能,我如何在 css 或 javascript 中反转图像 (jpg/png..) 的颜色?

Previousrelated 问题不够详细。

【问题讨论】:

标签: javascript css colors


【解决方案1】:

CSS3 有一个新的过滤器属性只能在 webkit 浏览器中使用 supported 在 webkit 浏览器和 Firefox 中。它在 IE 或 Opera mini 中不支持:

img {
   -webkit-filter: invert(1);
   filter: invert(1);
   }
<img src="http://i.imgur.com/1H91A5Y.png">

【讨论】:

  • 不适用于 Firefox 16.0.2。但是here 我发现这可以工作:filter: url(data:image/svg+xml;base64,PHN2Z...<long address>...PC9zdmc+#invert);,可以吗?
  • 那是因为 firefox 不是 webkit。您需要检查浏览器是否为 webkit,否则通过 base64 转换进行反转。
  • 你说得对,它在 Chrome 中确实有效。我很确定这应该在 Firefox 中工作,如 here: filter: url("data:image/svg+xml;utf8,<svg height='0' xmlns='http://www.w3.org/2000/svg'><filter id='blur'><feGaussianBlur stdDeviation='5' /></filter></svg>"); 所说,但它没有......任何想法?
  • 不错,但是很崩溃。它会反转颜色,但是当我将鼠标移到我的页面上时,选项卡会崩溃。用 Google Chrome 25.0.1364.172 x86_64 Linux 试了一下。
  • 作为旁注,可以考虑使用 contrast(0.1)` 过滤器。
【解决方案2】:

可以使用下面的代码在主要的新浏览器中完成

.img {
    -webkit-filter:invert(100%);
     filter:progid:DXImageTransform.Microsoft.BasicImage(invert='1');
}

但是,如果您希望它可以在所有浏览器上运行,则需要使用 Javascript。像this gist 这样的东西就可以完成这项工作。

【讨论】:

    【解决方案3】:

    您可以通过 javascript 应用样式。这是下面的 Js 代码,它将过滤器应用于 ID 为 theImage 的图像。

    function invert(){
    document.getElementById("theImage").style.filter="invert(100%)";
    }
    

    这就是

    <img id="theImage" class="img-responsive" src="http://i.imgur.com/1H91A5Y.png"></img>
    

    现在你需要做的就是调用 invert() 我们在点击图片时执行此操作。

    function invert(){
    document.getElementById("theImage").style.filter="invert(100%)";
    }
    <h4> Click image to invert </h4>
    
    <img id="theImage" class="img-responsive" src="http://i.imgur.com/1H91A5Y.png" onClick="invert()" ></img>

    我们在website 上使用它

    【讨论】:

      【解决方案4】:

      对于从 0 到 1 的反转,您可以使用这个库 InvertImages,它提供对 IE 10 的支持。我还使用 IE 11 进行了测试,它应该可以工作。

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 2020-07-18
        • 2021-09-23
        • 2012-09-08
        • 2013-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-18
        相关资源
        最近更新 更多