【发布时间】:2013-07-22 10:23:31
【问题描述】:
是否可以计算屏幕特定部分的像素数?说我画了一个圆圈并想计算没有。圆圈内的像素数!
【问题讨论】:
-
你看过这个SO answer吗?
-
@ShivanRaptor 我知道如何计算。如果整个屏幕的像素,但我不知道如何对特定部分执行相同操作
标签: android
是否可以计算屏幕特定部分的像素数?说我画了一个圆圈并想计算没有。圆圈内的像素数!
【问题讨论】:
标签: android
您可以获取视图的宽度和高度,但这取决于您绘制圆圈的方式。如果你在画布上绘制它,你可以使用以下方法计算圆的面积:
area = Π x r(2)
您只需要圆的半径并使用 3.1415927 作为 Pi 的值。
【讨论】:
将画布推入位图,然后计算像素数:
public static Bitmap getBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
这将为您提供位图,然后逐步遍历每个像素并计算您要查找的颜色:
for(int x = 0; x < b.getWidth(); x++){
for(int y = 0; y < b.getHeight(); y++){
int pixel = b.getPixel(x,y);
int r = Color.red(pixel);
int g = Color.green(pixel);
int b = Color.blue(pixel);
//test against your colour here and increment counter
}
}
我手头没有 IDE,所以代码可能有点粗糙,但它会让你走上正确的道路。
【讨论】: