我想将整个图像(PNG)加载到一个二维数组中,其中黑色像素为true
,白色像素为false
。
最有效的方法是什么?
我应该将图像转换为位图并尝试将其读入,或者是否有更有效的方法?
答案 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()
。