Я хочу получить массив значений RGB из изображения и посчитать данные внутри массива. Например (2 X 2 пикс. Пример)
[[[R, G, B], [R, G, B]], [[R, G, B], [R, G, B]]]
Data = 12
SUM = total from all of the RGB values
Код, который у меня сейчас есть:
<?php
// open an image
$image = imagecreatefromjpeg('image.jpg'); // imagecreatefromjpeg/png/
// get image dimension, define colour array
$width = imagesx($image);
$height = imagesy($image);
$colors = [];
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;
$y_array=array($r,$g,$b);
$x_array[]=$y_array;
}
$colors=$x_array;
}
print_r($colors);
print_r(sizeof($colors));
print_r(array_sum($colors));
?>
Вывод, который я получаю:
[[[0, 255, 0], [255, 0, 0]], [[0, 0, 255], [255, 255, 255]]]
Data = 2
SUM = 0
Выше приведено не работает. Мое изображение теперь просто в формате JPEG размером 2 X 2 пикселя, которое должно вывести:
[[[0, 255, 0], [255, 0, 0]], [[0, 0, 255], [255, 255, 255]]]
Data = 12
SUM = 0+255+0+255+0+0+0+0+255+255+255+255 = 2295
Любая помощь с благодарностью!