У меня есть следующие изображения:
И у меня есть следующий метод, который возвращает мне цвет палитры из растрового изображения этих изображений:
public static int getPredominantColorFromPokemon(String pokemonId, Context context) {
int pokemonImage = PokemonUtils.getPokemonSugimoriImageById(pokemonId, context);
if (pokemonImage == 0) {
return Color.WHITE;
}
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), pokemonImage);
Palette palette = Palette.from(bitmap).generate();
int colorPalette1 = palette.getLightVibrantColor(Color.WHITE);
int colorPalette2 = colorPalette1 == -1 ? palette.getVibrantColor(Color.WHITE) : colorPalette1;//Fallback
int colorPalette3 = colorPalette2 == -1 ? palette.getLightMutedColor(Color.WHITE) : colorPalette2; //Fallback
int colorPalette4 = colorPalette3 == -1 ? palette.getDominantColor(Color.WHITE) : colorPalette3;//Fallback
return colorPalette4;
}
Цвета результата этих 3 изображений следующие:
Однако это не то, что я ищу, мой желаемый результат будет таким:
Результаты первого и второго изображения в порядке, фон зеленый, потому что преобладает зеленый цвет, но в случае с третьим изображением (Венузавр) это не так, потому что результат имеет розовый/фиолетовый цвет, и я хочу, чтобы Палитра для обнаружения зеленого вместо этого. Как я могу изменить свой метод, чтобы определить ПРЕИМУЩЕСТВЕННЫЕ цвета?