管道基础大数据平台系统开发-【前端】-新系統界面
编辑 | blame | 历史 | 原始文档
//function sendStatus(statusText) {

//    postMessage({"type": "status","statusText": statusText});

//}

self.addEventListener('message', function (e) {
    var data = e.data;
    // Data
    //---------
    // nullValue
    //nullTolerance
    // canvasData
    // width
    // height
    // startX

    //sendStatus("Worker started blur on data in range: " +
        //data.startX + "-" + (data.startX + data.width));
    // 
    
    var pix = data.canvasData;

    var nullColor = data.nullValue;
    var tolerance = (data.nullTolerance != undefined) ? data.nullTolerance : 0;
    var r, g, b, i;
    var nr = nullColor.r,
        ng = nullColor.g,
        nb = nullColor.b,
        length = pix.length;

    for (i = 0; i < length; i += 4) {
         r = pix[i],
         g = pix[i + 1],
         b = pix[i + 2];

         if (!tolerance) {
             if (r == nr && g == ng && b == nb) {

                 //pix[i] = r;
                 //pix[i + 1] = g;
                 //pix[i + 2] = b;
                 pix[i + 3] = 0;
             }
         } else if (pix[i+3] != 0 ) { 
             if (Math.abs(r - nr) <= tolerance && Math.abs(g - ng) <= tolerance && Math.abs(b - nb) <= tolerance)
             {
                 pix[i + 3] = 0;
             }
         }
    }
    data.canvasData = pix;
    
    postMessage(data);

    //sendStatus("Finished blur on data in range: " +
    //                data.startX + "-" + (data.width + data.startX));

});