Лучший способ получить карту всех пикселей изображения с помощью GD
Следующий код используетБиблиотека SimpleImage
У меня есть функция, которая получает пиксель из изображения:
function getPixel($x, $y) {
$colors = imagecolorsforindex($this->image, imagecolorat($this->image, $x, $y));
$n[0] = $colors['red'];
$n[1] = $colors['green'];
$n[2] = $colors['blue'];
$str = "#";
for($x=0;$x < 3; $x++){
$n[$x] = intval($n[$x],10);
if (is_nan($n[$x])) return "00";
$n[$x] = max(0, min($n[$x],255));
$bam = "0123456789ABCDEF";
$str .= $bam{($n[$x]-$n[$x]%16)/16} . $bam{$n[$x]%16};
}
return $str;
}
Чтобы получить каждый пиксель изображения, я использую этот цикл:
$arr = [];
for($y = 0;$y < $image->getHeight(); $y++){
$arr[$y] = [];
for($x = 0; $x < $image->getWidth(); $x++){
$arr[$y][$x] = $image->getPixel($x, $y);
}
}
Интересно, есть ли более быстрый способ сделать это с GD и PHP?
РЕДАКТИРОВАТЬ
Что я'Я думаю, это какой-то способ получить значение каждого пикселя из GD без цикла PHP.