Se você tiver - ou puder instalar - o pacote ImageMagick, ele tem um utilitário identify
que pode imprimir um histograma das cores no arquivo; O programa awk abaixo fará a varredura da saída identify -verbose
para o número de cores e as cores listadas no histograma. Se houver apenas uma cor listada e as únicas cores no histograma forem brancas, ela retornará "sucesso", caso contrário, "falha".
Você pode então envolver um script de shell no awk e identificar para sinalizar arquivos correspondentes:
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 }
}