缘起
在上礼拜五,众网站收到了网站变灰的通知,当然编者也在周五在进行网站变灰,Chrome,FF等问题不大,一段CSS完成,速度也很快,但是IE10/11很难啃,需要借助JavaScript来完成。由于生产工具原因,最后对IE10/11做了屏蔽处理,第二天,作者特意研究了众多网站对IE10/11的变灰处理,特进行此次复盘。
1.js工具 grayscale.js
先上图
该方法便是采用grayscale.js插件(点我下载),通过js对图片进行变灰处理,使的网站整体变灰,附变灰使用的公式
ITU-R BT.709的亮度公式为 Y=0.2126R+0.7152G+0.0722B
该方法缺点:由于对每个图片进行变灰处理,图片量较大的网站不适应,会很吃电脑配置,表示在公司卡死5分钟后能出,家里游戏本卡死1分钟左右。
2.js代码
function gray(imgObj) {
var canvas = document.createElement('canvas');
var canvasContext = canvas.getContext('2d');
var imgW = imgObj.width;
var imgH = imgObj.height;
canvas.width = imgW;
canvas.height = imgH;
canvasContext.drawImage(imgObj, 0, 0);
var imgPixels = canvasContext.getImageData(