Есть ли быстрый способ создания пиксельных проксицированных изображений в PHP

Я применяю свой собственный алгоритм на изображениях на PHP. Алгоритм идет по трем входным изображениям по пикселям (все изображения одного размера) и устанавливает пиксель в выходном изображении:

for ($x = 0; $x < $width; $x++) { for ($y = 0; $y < $height; $y++) { $color1 = imagecolorat ($image1, $x, $y); $color2 = imagecolorat ($image2, $x, $y); $color3 = imagecolorat ($image3, $x, $y); $color4 = my_function ($color1, $color2, $color3); imagesetpixel ($image4, $x, $y, $color4); } } 

Проблема в том, что это очень медленно для больших изображений, поскольку PHP является интерпретированным языком.

В PHP есть специальные методы, которые позволяют эффективно вызывать функцию для всех членов массива, например: array_map, array_filter, array_reduce, array_walk.

Существуют ли аналогичные методы для изображений, т. Е. Вызвать некоторую функцию для всех пикселей одного (или нескольких) изображений?

Или, может быть, есть способ получить доступ к изображению в виде массива в PHP?

Заранее спасибо…

В PHP есть специальные методы, которые позволяют эффективно вызывать функцию для всех членов массива

Я боюсь, вы ошибаетесь в этом заявлении.
Эти функции не настолько эффективны.

В любом случае, нет – подобных функций для библиотеки GD нет.

Вы можете искать Google для некоторой библиотеки доступа к пикселям – возможно, некоторые из них уже написаны, я считаю.