我有以下图片:
我有以下方法可以从这个图像的位图中返回调色板颜色:
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 张图像的结果颜色如下:
但是,这不是我要找的,我想要的输出是这样的:
第一个和第二个图像结果还可以,背景是一种绿色,因为主要颜色是绿色,但在第三个图像(Venusaur)的情况下不是因为结果是一种粉红色/紫色,我想要调色板改为检测绿色。如何修改我的方法以检测主要颜色?