avoidRedBlackWhitePaletteFilter function
A basic PaletteFilter, which rejects colors near black, white and low saturation red.
Use this as an element in the filters
list given to PaletteGenerator.fromImage.
See also:
- PaletteGenerator, a class for selecting color palettes from images.
Implementation
bool avoidRedBlackWhitePaletteFilter(HSLColor color) {
bool _isBlack(HSLColor hslColor) {
const double _blackMaxLightness = 0.05;
return hslColor.lightness <= _blackMaxLightness;
}
bool _isWhite(HSLColor hslColor) {
const double _whiteMinLightness = 0.95;
return hslColor.lightness >= _whiteMinLightness;
}
// Returns true if the color is close to the red side of the I line.
bool _isNearRedILine(HSLColor hslColor) {
const double redLineMinHue = 10.0;
const double redLineMaxHue = 37.0;
const double redLineMaxSaturation = 0.82;
return hslColor.hue >= redLineMinHue &&
hslColor.hue <= redLineMaxHue &&
hslColor.saturation <= redLineMaxSaturation;
}
return !_isWhite(color) && !_isBlack(color) && !_isNearRedILine(color);
}