0
私はキャンバスのビットマップを描き、無着色領域をパーセンテージで計算しようとしています。 私はいくつかの方法を見つけましたが、ピクセルを計算していません。画面を描画し終わったら、私は小さな領域を残しました。アンドロイドキャンバス%で領域の色付きピクセルを計算する
public float percentTransparent(Bitmap bm, int scale) {
final int width = bm.getWidth();
final int height = bm.getHeight();
// size of sample rectangles
final int xStep = width/scale;
final int yStep = height/scale;
// center of the first rectangle
final int xInit = xStep/2;
final int yInit = yStep/2;
// center of the last rectangle
final int xEnd = width - xStep/2;
final int yEnd = height - yStep/2;
int totalTransparent = 0;
for(int x = xInit; x <= xEnd; x += xStep) {
for(int y = yInit; y <= yEnd; y += yStep) {
if (bm.getPixel(x, y) == Color.TRANSPARENT) {
totalTransparent++;
}
}
}
return ((float)totalTransparent)/(scale * scale);
}
これは私が見つけた方法です。
ありがとうございましたが、多くの時間がかかりました –
信頼できる計算が必要な場合は、すべてのピクセルをスキャンしてすべてのピクセルをスキャンする必要があります。しかし、それは私が最後に観測を追加した理由です.RenderScriptを使用すると、はるかに高速にすることができます – Budius