回 帖 发 新 帖 刷新版面

主题:求指定区域内的像素

1、随便画一条线求它所占用的像素数目
   2、画一个椭圆,求它包含的像素数目
   大哥些啊。我关键是没思路

回复列表 (共2个回复)

沙发

对于直线是由点组成的。在我们的屏幕上的任何区域实际是由一个直角坐标系。而像素就是单位。举个例子,比如说(232,420)就是指在横坐标232纵坐标420位置的一个像素点。要球直线有多少个像素点就容易了啊。计算出两个点之间的距离就可以了。只是距离的单位就是像素,或者说有多少个像素。

  椭圆就没太好的方法,比较笨。你画好的图形的颜色是与背景不同的。然后逐行遍历每个像素点,如果是黑点(假设你画的圆是黑的)则count++,否则pass查看下一个点。知道把二维矩阵全部遍历为止。你就知道你有多少个黑点了。

板凳


不过你得说清楚,应该是说是MM_TEXT下CPoint ==逻辑坐标,GDI绘图是用逻辑坐标,而CPoint 是用DEVICE坐标,正好一个cpoint对应于一个像素,所以就能测量出一个图形所占用的像素了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册