将QPainterPath转换为bmp并获取填充区域的二维数组

时间:2013-11-16 14:34:22

标签: c++ qt image-processing qpainter

我正在开展一个项目,我需要在加载的图片上标记一些区域。现在我使用QPainterPath来保持笔的痕迹。我想将图片和封闭区域添加到图片中并将其保存为BMP文件。 我怎么能实现这个功能?

更重要的是,我想获得封闭区域的区域统计数据。所以我想出了测试每个像素以查看它是否在该区域的想法。我的问题:

1.是否有一个函数告诉像素是否在该区域内。

2.获得该区域的其他方法。

1 个答案:

答案 0 :(得分:0)

您可以使用QPainterPath::contains函数检查路径是否包含该点。但请注意,QPainterPath操作矢量图形并且不知道有关绘画设备或笔的任何信息,因此contains可能不适用于线条。它将检测该点是否在多边形,矩形等内部

根据评论中的建议,您可以使用适当的大小创建QImage,使用QImage::fill设置默认背景颜色,使用QPainter构造函数参数创建QImage*并绘制路径。然后,您可以使用QImage::save将图像保存到BMP文件。您还可以使用QImage::pixel函数检查每个像素的值并确定区域。请注意,在访问结果QPainter::end之前,您可能需要致电QImage以确保已将更改写入其中。