Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Js canvas image effect -> php image effect (https://javascript.ru/forum/server/31572-js-canvas-image-effect-php-image-effect.html)

zebra 12.09.2012 23:59

Js canvas image effect -> php image effect
 
Есть картинка на канвасе, для которой применяются разные фильтры (черно-белый, сепия и тд), нужно перенести эффекты на пхп.
Функция 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>


Часовой пояс GMT +3, время: 14:37.