Давно назревала такая задача: в
Архиве переводов выявить стрипы, которые переведены, но в чёрно-белом виде (это было очень давно, ещё до того, как Архивом занялся я). Чтобы не делать это руками, пришлось немного пораскинуть мозгами и написать скрипт, который анализирует изображения. Вышло вот что (привожу самый важный кусочек кода):
// Грузим картинку
$im = imagecreatefromgif($strip_filename);
// Подсчитываем цвета
$c=imagecolorstotal($im);
// Если цветов маловато
if ($c<40) {
$w = imagesx($im);
$h = imagesy($im);
$black=0;
// Возьмём сотню случайных точек
for ($ii=1;$ii<101;$ii++) {
$cindx = imagecolorat($im, rand(0,$w), rand(0,$h));
$rgb = imagecolorsforindex($im, $cindx);
// И если они плюс-минус серые, добавляем счётчику единичку
if (($rgb["red"]>($rgb["green"]-3)) and
($rgb["red"]<($rgb["green"]+3)) and
($rgb["red"]<($rgb["blue"]+3)) and
($rgb["red"]>$rgb["blue"]-3)) {
$black++;
};
};
// Если из этих 100 точек хотя бы 96 - серые, запоминаем стрип
if ($black>95) { $bw[]=$strip_filename; };
};
imagedestroy($im);
Результатом стало вот такое дополнение на сайте (чёрно-белые стрипы отрисовываются чёрными квадратиками):
Видно эту раскраску, конечно, только тем, кто состоит в команде сайта и может помочь сделать ремастер этих переводов.