在PHP中是否存在逐像素处理图像的快速方法

时间:2011-11-28 10:38:06

标签: php image performance

我在PHP中使用我自己的algotirhm图像。 该算法逐个像素地放置三个输入图像(所有相同尺寸的图像)并在输出图像中设置像素:

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 个答案:

答案 0 :(得分:1)

  

PHP中有一些特殊的方法可以有效地为数组的所有成员调用一个函数

我担心这个陈述你错了。
这些功能效率不高。

无论如何,没有 - GD库没有类似的功能。

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