来自位图的突出颜色,而不使用Palette Api Android

时间:2015-10-21 19:44:38

标签: java android image-processing bitmap

我希望从位图获得最突出的颜色代码(如黑色,白色,蓝色等)而不使用Palette Api Android ..请帮助

2 个答案:

答案 0 :(得分:0)

好的,所以你需要做的就是模糊位图,然后挑出像素颜色。您只需将其缩小到较小的尺寸,然后将其放大到较大的尺寸(Bitmap.createScaledBitmap())就可以模糊。这将像素化你的位图。然后,您获得像素的颜色(Bitmap.getPixels(x,y))。

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

答案 1 :(得分:0)

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

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++;
}