我正在开展一个项目,我需要在加载的图片上标记一些区域。现在我使用QPainterPath来保持笔的痕迹。我想将图片和封闭区域添加到图片中并将其保存为BMP文件。 我怎么能实现这个功能?
更重要的是,我想获得封闭区域的区域统计数据。所以我想出了测试每个像素以查看它是否在该区域的想法。我的问题:
1.是否有一个函数告诉像素是否在该区域内。
2.获得该区域的其他方法。
答案 0 :(得分:0)
您可以使用QPainterPath::contains
函数检查路径是否包含该点。但请注意,QPainterPath
操作矢量图形并且不知道有关绘画设备或笔的任何信息,因此contains
可能不适用于线条。它将检测该点是否在多边形,矩形等内部
根据评论中的建议,您可以使用适当的大小创建QImage
,使用QImage::fill
设置默认背景颜色,使用QPainter
构造函数参数创建QImage*
并绘制路径。然后,您可以使用QImage::save
将图像保存到BMP文件。您还可以使用QImage::pixel
函数检查每个像素的值并确定区域。请注意,在访问结果QPainter::end
之前,您可能需要致电QImage
以确保已将更改写入其中。