PHP中是否有一种逐像素处理图像的快速方法?


Is there a fast way of pixel-by-pixel proceccing images in 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库中没有类似的函数。

你可以在谷歌上搜索一些像素访问库-我相信可能已经写好了。