如何获取一个封闭不规则多边形内的总像素个数?请高手赐教!

解决方案 »

  1.   

    多边形可以分成几个小三角形,通过底边和点到直线的距离作为高确定一个三角形的面积(底*高/2)。化成纯粹数学问题,无需任何API。
      

  2.   

    先将多边形转换成区域,然后使用GetRgnBox获得包含该多边形最小矩形,再创建一幅该矩形大小的位图,遍历位图像素。在遍历时注意一下算法,可以用4次循环进行,即先从左上往左下进行扫描,遇到区域相关的像素值则退出,然后同样地,从右下往右下、左上往右上、左下往右下依次扫描,得出不属于这个多边形的像素个数,再由总像素个数减掉它后就得到了多边形的像素个数,这样对于较大的多边形,由于省略了大量像素的扫描,速度自然要比一个循环快一些。当然,如果多边形不大,直接用一个循环扫描也行。