Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不使用调色板Api的位图的突出颜色_Java_Android_Image Processing_Bitmap - Fatal编程技术网

Java 不使用调色板Api的位图的突出颜色

Java 不使用调色板Api的位图的突出颜色,java,android,image-processing,bitmap,Java,Android,Image Processing,Bitmap,我想在不使用Palette Api Android的情况下从位图中获得最突出的颜色代码,如(黑色、白色、蓝色等)。请帮助确定,因此您需要做的是基本上模糊位图,然后选择像素颜色。只需将其缩小到一个小尺寸,然后将其放大到一个大尺寸(Bitmap.createScaledBitmap())。这将对位图进行像素化。然后获得像素的颜色(Bitmap.getPixels(x,y)) 尝试缩放,以便最终位图包含较少的颜色作为像素。要获得阴影图像吗?在任何情况下,您都需要以下内容: import android

我想在不使用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++;
}
导入android.graphics.Color;
int=0;
int-blues=0;
绿色整数=0;
int[]像素=新的int[myBitmap.getHeight()*myBitmap.getWidth()];
getPixels(像素,0,myBitmap.getWidth(),0,0,myBitmap.getWidth(),myBitmap.getHeight());
对于(int i=0;i>16&0xff;
g=(pix[i])>>8&0xff;
b=(pix[i])&0xff*/
//int alpha=颜色。alpha(颜色);
如果(红色>=蓝色和红色>=绿色)红色++;
如果(蓝色>=红色和蓝色>=绿色)蓝色++;
如果(绿色>=蓝色和绿色>=红色)绿色++;
}

调色板是专门为这种情况设计的。你为什么要寻找替代方案?因为我的项目中没有使用v7支持库…我现在不想使用它我可以得到像素的颜色…但是我如何知道位图中哪种颜色比其他颜色更突出?当你模糊图像时,只有突出的c颜色显示。如果颜色在位图中仅显示1%,在模糊它时,该颜色将丢失。正如我提到的,您需要尝试模糊位图。好的,让我试试,然后我会在完成后通知您。感谢hinti成功获得这样的颜色,但您能告诉我如何从位图中删除特定的颜色吗?尽管我成功了d删除颜色,但它没有完全删除?你需要获得色调。但是伙计,你要求的是在没有+的情况下获得更多信息。请阅读: