我绘制了一个画布位图并试图计算无色区域的百分比。 我发现了一些方法,但他们没有计算像素,当我完成绘制屏幕并且我已经离开了一个很小的未知区域时,该方法写下了我完成的。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);
}
这是我找到的方法。
博客主要围绕Android开发展开,讲述了绘制画布位图时计算无色区域百分比的问题。作者给出了一个以百分比计算区域彩色像素的方法,通过遍历位图像素,统计透明像素数量,最终计算出透明像素占比。

被折叠的 条评论
为什么被折叠?



