我必须在不使用ML(Google视觉,IBM视觉识别)的情况下在Android中提取图像的所有颜色。
我检查了以下选项。
1。Palette 调色板库尝试提取以下六个颜色配置文件。
2。获取特定像素的颜色
public static int getDominantColor(Bitmap bitmap) {
Bitmap newBitmap = Bitmap.createScaledBitmap(bitmap, 1, 1, true);
final int color = newBitmap.getPixel(0, 0);
newBitmap.recycle();
return color;
}
如果我将位图尺寸缩小,然后找出颜色并保存在列表中。 然后有一些时间和OutOfMemoryError。
请建议使用任何一个图书馆查找图像的颜色。
修改
从画廊挑选
InputStream stream = getContentResolver().openInputStream(
data.getData());
bitmap = BitmapFactory.decodeStream(stream);
stream.close()
从像素获取颜色代码
HashMap<Integer,Integer> colorList=new HashMap<>();
private void getAllColorInImages(Bitmap bitmap)
{
colorList.clear();
if(bitmap==null)
return;
int width=bitmap.getWidth();
int height=bitmap.getHeight();
for(int i=0;i<width;i++)
{
for(int j=0;j<height;j++)
{
final int color = bitmap.getPixel(i, j);
colorList.put(color,color);
}
}
System.out.println("color list size "+colorList.size());
System.out.println("color list Name "+colorList);
}