jQuery将图像转换为灰度?

时间:2010-03-19 00:43:11

标签: jquery

我是jQuery的新手,非常喜欢它。我想知道是否有类似IE的效果,我可以在运行时将图像转换为灰度?

8 个答案:

答案 0 :(得分:9)

查看pixastic ...它应该可用...

  • Internet Explorer 5.5+
  • Opera 9.5 +
  • Firefox 2+
  • WebKit Nightly

http://www.pixastic.com/lib/docs/actions/desaturate/

var img = new Image();
img.onload = function() {
    Pixastic.process(img, "desaturate", {average : false});
}
document.body.appendChild(img);
img.src = "myimage.jpg";

答案 1 :(得分:3)

这是我的简单jQuery插件:jquery-grayscale

你运行它:

$('img').grayscale();

它使用< canvas>所以它不适用于旧浏览器。

答案 2 :(得分:2)

我不认为jQuery有一种特殊的方法,但你可以使用<canvas>标签。 see tutorial

答案 3 :(得分:1)

有一个例子是使用jQuery在反向(颜色到灰度)中完成:

http://www.sohtanaka.com/web-design/examples/hover-over-trick/

我想它可以很简单地反转它,所以它从灰色变为彩色。代码本身看起来非常简单和优雅。

答案 4 :(得分:0)

如果您的目标是在悬停时使图像变灰,您也可以使用此技巧。 http://www.sohtanaka.com/web-design/greyscale-hover-effect-w-css-jquery/

答案 5 :(得分:0)

我编写了一个名为$.greyScale()的jQuery插件,可以为您完成此操作。它也通过代理请求来支持托管在另一个域上的图像。

只需使用

调用它
$('img').grayScale();

答案 6 :(得分:0)

有一种方法只能使用 CSS3 来执行此操作(因此一般来说不是jQuery功能)。虽然不需要任何插件。

在CSS中添加:

.grayscale {
     filter: grayscale( 100% );
}

对于 Safari ,您必须使用:

.grayscale {
     -webkit-filter: grayscale( 100% );
}

在JS中使用:

$('#myElement').addClass('grayscale');

希望这会有所帮助!

答案 7 :(得分:-1)

我尝试了这里列出的所有内容并且它们运行不正常(要么做太多就像挂在悬停上,要么就是不能跨浏览器或域工作)。所以我自己鞭打了一个,这非常简短:https://github.com/arturnt/jquery.grayscale.js