Я могу преобразовать изображение в оттенки серого, как я желаю, но мне было интересно, как вернуться к оригинальному изображению после преобразования в оттенки серого?Как преобразовать изображение в оттенках серого в оригинальное изображение RGB?
Вот мой 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;
};
Ум, что? Изменение цветного изображения в оттенки серого потеряет информацию, и вы не можете получить обратно. Существует множество комбинаций красного, зеленого и синего, которые могут привести к серому значению «50%», включая, конечно, случай, когда предполагаемый цвет RGB * был «50% серым». – usr2564301