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

I want to load an entire image (PNG) into a 2-dimensional array where a black pixel is true and a white pixel is false.

What's the most efficient way of doing this?

Should I convert the image into bitmap and attempt to read that in, or is there a more efficient method?

This should do:

$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;
    } 
}

A probably more efficient way would be using Imagick::exportImagePixels().