问题描述
我想从位图获取最突出的颜色代码,例如(黑色,白色,蓝色等),而无需使用Palette Api Android。
1楼
好的,因此您需要做的实际上是模糊位图,然后挑选像素颜色。
您可以通过将其缩小到较小的大小然后放大为更大的大小来简单地进行模糊处理( Bitmap.createScaledBitmap()
)。
这将使您的位图像素化。
然后,获得像素的颜色( Bitmap.getPixels(x,y)
)。
尝试缩放,以便最终的位图包含较少的像素颜色。
2楼
您想获得阴影图像吗? 无论如何,您都需要这样的东西:
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++;
}