画像を撮影して、その平均色を調べたいと思っています。つまり、画像の半分が黒で半分が白の場合、その中間の色、つまりグレーの色合いを取得します。最も頻繁に使用される単一の色または中央値になります。平均であれば何でも構いません。
Android でこれを実行するにはどうすればよいですか?
ベストアンサー1
Bitmap bitmap = someFunctionReturningABitmap();
long redBucket = 0;
long greenBucket = 0;
long blueBucket = 0;
long pixelCount = 0;
for (int y = 0; y < bitmap.getHeight(); y++)
{
for (int x = 0; x < bitmap.getWidth(); x++)
{
Color c = bitmap.getPixel(x, y);
pixelCount++;
redBucket += Color.red(c);
greenBucket += Color.green(c);
blueBucket += Color.blue(c);
// does alpha matter?
}
}
Color averageColor = Color.rgb(redBucket / pixelCount,
greenBucket / pixelCount,
blueBucket / pixelCount);