Один из способов сделать это - масштабировать изображение до одного пикселя, а затем использовать цвета этого пикселя в качестве эталона.
<?php
$image = new Imagick('800x480.jpg');
$image->scaleImage(1, 1, true);
$pixel = $image->getImagePixelColor(0,0);
$red = ($rgb >> 16) & 0xFF;
$green = ($rgb >> 8) & 0xFF;
$blue = $rgb & 0xFF;
?>
Таким образом, вам не нужно обрабатывать грязные детали.и вы можете использовать более умные алгоритмы масштабирования для достижения большей точности.
Редактировать: Вместо этого вы можете использовать Imagick :: resizeImage , если вам нужен более сложный алгоритм.он может использовать разные алгоритмы, такие как фильтр интерполяции.