我希望从位图获得最突出的颜色代码(如黑色,白色,蓝色等)而不使用Palette Api Android ..请帮助
答案 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++;
}