Если у вас есть - или вы можете установить - пакет ImageMagick, в нем есть утилита identify
, которая может распечатать гистограмму цветов в файле; Программа awk, представленная ниже, просканирует вывод identify -verbose
на предмет количества цветов и цветов, перечисленных в гистограмме. Если в списке указан только один цвет и единственные цвета на гистограмме белые, тогда будет возвращено «успех», в противном случае - «неудача».
Затем вы можете обернуть сценарий оболочки вокруг awk и идентифицировать соответствующие файлы:
for f in images/*
do
identify -verbose "$f" | awk -f iswhite.awk && echo "$f is an all-white image"
done
iswhite.awk :
/Histogram:/ {
inhisto=1
}
inhisto && /[[:digit:]]+: \([ [:digit:]]{3},[ [:digit:]]{3},[ [:digit:]]{3}\) #/ {
if ($0 !~ /#FFFFFF white/) { nonwhite=1 }
}
/Rendering intent/ {
inhisto=0
}
/Colors: / {
ncolors=$2
}
END {
if (ncolors == 1 && nonwhite == 0) { exit 0 } else { exit 1 }
}