我需要将内部旧版Web应用程序上的彩色图像转换为灰度图像。我认为最简单的方法是使用CSS过滤器。由于组策略,此应用程序的用户通过IE11访问它。此应用程序还必须使用Quirks(IE5)文档模式运行,否则会发生疯狂的事情(呈现问题,javascript无法正常工作等)。
我尝试了以下代码(以及来自here,here和here的代码)
img.desaturate {
-webkit-filter: grayscale(100%);
filter: gray;
filter: grayscale(100%);
filter: url(desaturate.svg#greyscale);
}
没有效果。鉴于此标准(IE11以IE5文档模式运行),我可以做些什么来获取这些灰度图像,如果有,怎么做?
注意:重新设计应用程序以使用更现代的技术目前尚未获得资助,将来也不会。
注意:使用某些脚本将每个图像转换为灰度并保存输出也不是一个选项,因为有数百万个图像可用。
链接到显示彩色Google徽标的示例:https://jsfiddle.net/bq2mw5ya/2/
答案 0 :(得分:4)
实际上我将我的评论作为反馈的答案:
IE特定的过滤器应该是最后一个,所以它不会被下一个过滤。
还应允许Activex运行
当然,应该采用怪癖模式......
img.desaturate {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
filter: url(desaturate.svg#greyscale);
filter: gray;
}