我希望能够拍摄图像并找出它的平均颜色是什么,这意味着如果图像是一半黑色和一半白色,我会得到介于两者之间的东西……一些灰色阴影。它可能是最常见的单一颜色或中位数。任何平均值都可以。
我怎样才能在 Android 中做到这一点?
原文由 124697 发布,翻译遵循 CC BY-SA 4.0 许可协议
我希望能够拍摄图像并找出它的平均颜色是什么,这意味着如果图像是一半黑色和一半白色,我会得到介于两者之间的东西……一些灰色阴影。它可能是最常见的单一颜色或中位数。任何平均值都可以。
我怎样才能在 Android 中做到这一点?
原文由 124697 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想你必须自己做。
只需创建一个包含所有颜色的 int 数组:
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
bmp = bmp.copy(Bitmap.Config.ARGB_8888, true);
int intArray[] = new int[bmp.getWidth()*bmp.getHeight()];
bmp.getPixels(intArray, 0, bmp.getWidth(), 0, 0, bmp.getWidth(), bmp.getHeight());
然后你可以用 intArray[0] 得到颜色,红色的值可以是 0xFFFF0000(最后 6 个数字是 RGB 颜色值)。
这是另一个简单的解决方案:
在位图中获取全尺寸图像。
创建一个 1*1px 的缩放位图。
获取此位图颜色。
原文由 Stephane Mathis 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决