Есть картинка на канвасе, для которой применяются разные фильтры (черно-белый, сепия и тд), нужно перенести эффекты на пхп.
Функция setFilter переводит картинку(в примере закрашенный красный прямоугольник) в черно-белый цвет(эффектов много). Как можно перенести этот код на пхп, а именно получить картинку, и заменить в ней цвета?
<canvas id="canvas" width="200" height="200"></canvas>
<script>
var canv = document.getElementById('canvas'),
ctx = canv.getContext('2d');
var canvFunc = {
getData: function () {
return ctx.getImageData(0, 0, canvas.width, canvas.height);
},
setData: function (data) {
ctx.putImageData(data, 0, 0);
},
setFilter: function () {
var olddata = this.getData(), data = olddata.data;
var i = 0, len = data.length, b;
for (; i < len; i += 4) {
b = parseInt((data[i] + data[i + 1] + data[i + 2]) / 3, 10);
b = 255 * ((b / 255 - .5) * 1.3 + .5);
b = parseInt(b < 0 ? 0 : b > 255 ? 255 : b);
data[i] = b;
data[i + 1] = b;
data[i + 2] = b;
}
this.setData(olddata);
}
};
ctx.fillStyle = "#FF0000";
ctx.fillRect(0, 0, 150, 75);
canvFunc.setFilter();
</script>