PHP将图像加载到数组中,2位

时间:2011-11-23 10:22:48

标签: php

我想将整个图像(PNG)加载到一个二维数组中,其中黑色像素为true,白色像素为false

最有效的方法是什么?

我应该将图像转换为位图并尝试将其读入,或者是否有更有效的方法?

1 个答案:

答案 0 :(得分:4)

这应该做:

$image = imagecreatefrompng("input.png");
$width = imagesx($image);
$height = imagesy($image);
$colors = array();

for ($y = 0; $y < $height; $y++)
{
    for ($x = 0; $x < $width; $x++)
    {
        $rgb = imagecolorat($image, $x, $y);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;

        $black = ($r == 0 && $g == 0 && $b == 0);
        $colors[$x][$y] = $black;
    } 
}

可能更有效的方法是使用Imagick::exportImagePixels()