Есть ли быстрый способ попиксельного изображения в PHP? - PullRequest
1 голос
/ 28 ноября 2011

Я применяю свой собственный метод согласования к изображениям в 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?

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

1 Ответ

1 голос
/ 28 ноября 2011

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

Боюсь, вы ошиблись в этом утверждении.
Эти функции не являются 'т, что эффективно.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...