当前位置: 代码迷 >> Android >> 不使用Palette Api Android从位图突出显示颜色
  详细解决方案

不使用Palette Api Android从位图突出显示颜色

热度:14   发布时间:2023-08-04 11:07:14.0

我想从位图获取最突出的颜色代码,例如(黑色,白色,蓝色等),而无需使用Palette Api Android。

好的,因此您需要做的实际上是模糊位图,然后挑选像素颜色。 您可以通过将其缩小到较小的大小然后放大为更大的大小来简单地进行模糊处理( Bitmap.createScaledBitmap() )。 这将使您的位图像素化。 然后,获得像素的颜色( Bitmap.getPixels(x,y) )。

尝试缩放,以便最终的位图包含较少的像素颜色。

您想获得阴影图像吗? 无论如何,您都需要这样的东西:

import android.graphics.Color;

int reds = 0;
int blues = 0;
int greens = 0;

int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()];
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
for (int i=0; i<pixels.length; i++) {

int red = Color.red(colour);
int blue = Color.blue(colour);
int green = Color.green(colour);

/* Or it
    r = (pix[i]) >> 16 & 0xff;
    g = (pix[i]) >> 8 & 0xff;
    b = (pix[i]) & 0xff;*/
//int alpha = Color.alpha(colour);

if (red >= blue && red >= green) reds++;
if (blue >= red && blue >= green) blues++;
if (green >= blue && green >= red) greens++;
}
  相关解决方案