Javascript 如何将灰度图像转换为原始RGB图像?

Javascript 如何将灰度图像转换为原始RGB图像?,javascript,Javascript,我可以将图像转换为灰度,但我想知道的是如何在转换为灰度后返回到原始图像 这是我的javascript过滤器图像的灰度 Filters = {}; var img = document.getElementById("background"); var c = document.getElementById('canvas'); var ctx = c.getContext("2d"); Filters.getPixels = function() { return ctx.getIma

我可以将图像转换为灰度,但我想知道的是如何在转换为灰度后返回到原始图像

这是我的javascript过滤器图像的灰度

Filters = {};
var img = document.getElementById("background");
var c = document.getElementById('canvas');
var ctx = c.getContext("2d");

Filters.getPixels = function() {
    return ctx.getImageData(0, 0, c.width, c.height);
};

Filters.filterImage = function(filter, var_args) {
    var args = [this.getPixels()];
    args.push(var_args);
    return filter.apply(null, args);
};

function runFilter(filter, arg1, arg2, arg3) {
    var idata = Filters.filterImage(filter, arg1, arg2, arg3);
    c.width = idata.width;
    c.height = idata.height;
    var ctx = c.getContext('2d');
    ctx.putImageData(idata, 0, 0);
}

Filters.grayscale = function(pixels, args) {
    var d = pixels.data;
    for (var i = 0; i < d.length; i += 4) {
        var r = d[i];
        var g = d[i + 1];
        var b = d[i + 2];
        var v = 0.2126 * r + 0.7152 * g + 0.0722 * b;
        d[i] = d[i + 1] = d[i + 2] = v;
        }
    return pixels;
};
Filters={};
var img=document.getElementById(“背景”);
var c=document.getElementById('canvas');
var ctx=c.getContext(“2d”);
Filters.getPixels=函数(){
返回ctx.getImageData(0,0,c.宽度,c.高度);
};
Filters.filterImage=函数(filter,var_args){
var args=[this.getPixels()];
参数推送(变量参数);
返回筛选器。应用(null,args);
};
函数runFilter(过滤器,arg1,arg2,arg3){
var idata=Filters.filterImage(filter,arg1,arg2,arg3);
c、 宽度=idata.width;
c、 高度=idata.height;
var ctx=c.getContext('2d');
ctx.putImageData(idata,0,0);
}
Filters.grayscale=函数(像素、参数){
var d=像素数据;
对于(变量i=0;i
进入灰度需要扔掉颜色数据。唯一的办法就是把它的副本保存到别处。

进入灰度需要扔掉颜色数据。唯一的办法就是把它的副本保存到别处。

进入灰度需要扔掉颜色数据。唯一的办法就是把它的副本保存到别处。

进入灰度需要扔掉颜色数据。要想把它拿回来,唯一的办法就是在别处保存一份。

嗯,什么?将彩色图像更改为灰度会丢失信息,您无法将其恢复到原来的状态。有很多红、绿、蓝的组合可以产生“50%”的灰度值——当然,包括预期RGB颜色为“50%灰度”的情况。嗯,什么?将彩色图像更改为灰度会丢失信息,您无法将其恢复到原来的状态。有很多红、绿、蓝的组合可以产生“50%”的灰度值——当然,包括预期RGB颜色为“50%灰度”的情况。嗯,什么?将彩色图像更改为灰度会丢失信息,您无法将其恢复到原来的状态。有很多红、绿、蓝的组合可以产生“50%”的灰度值——当然,包括预期RGB颜色为“50%灰度”的情况。嗯,什么?将彩色图像更改为灰度会丢失信息,您无法将其恢复到原来的状态。有很多红、绿、蓝的组合可以产生“50%”的灰度值——当然,包括预期RGB颜色为“50%灰度”的情况。哈,我明白了。总之,我不能在没有保存原始图像的情况下返回原始图像,对吧!?哈,我明白了。总之,我不能在没有保存原始图像的情况下返回原始图像,对吧!?哈,我明白了。总之,我不能在没有保存原始图像的情况下返回原始图像,对吧!?哈,我明白了。总之,我不能在没有保存原始图像的情况下返回原始图像,对吧!?