0
我繪製了一個畫布位圖並試圖計算無色區域的百分比。 我發現了一些方法,但他們沒有計算像素,當我完成繪製屏幕並且我已經離開了一個很小的未知區域時,該方法寫下了我完成的。android canvas以百分比計算區域彩色像素
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