C++ 如何在Qt中使绘图从背景中脱颖而出?
我正在开发一个类似画家的小应用程序。用户能够在上传的图像上绘制点。是这样做的:C++ 如何在Qt中使绘图从背景中脱颖而出?,c++,qt,C++,Qt,我正在开发一个类似画家的小应用程序。用户能够在上传的图像上绘制点。是这样做的: { /... QPainter paint(objectpix); QPen PointPen (pointcolor[currentset-1]); PointPen.setWidth(5); QBrush PointBrush (pointcolor[setnumber-1],Qt::SolidPattern); QPoint p1 = QPoint(mFirstX,mFirstY); paint.setPe
{
/...
QPainter paint(objectpix);
QPen PointPen (pointcolor[currentset-1]);
PointPen.setWidth(5);
QBrush PointBrush (pointcolor[setnumber-1],Qt::SolidPattern);
QPoint p1 = QPoint(mFirstX,mFirstY);
paint.setPen(PointPen);
paint.setBrush(PointBrush);
paint.drawEllipse(p1,2,2);
paint.end();
/...
}
mFirstX、mFirstY是鼠标单击的坐标。我面临的问题是,点的颜色必须非常明亮(黄色(255255,0),红色(255,0,0)等),以便突出,而不是让用户用眼睛搜索绘制的点。我知道这取决于用户绘制点的图像。问题是我的应用程序是特定的,大多数图像看起来确实像下面的那个。
我想使用很多不同的颜色点,我希望他们从背景中脱颖而出。有什么可能的解决方案吗?在您不确定背景色是否会产生对比度的情况下,您必须创建自己的对比度。我的意思是画点,比如在较大的白色圆圈上画一个小的黑色圆圈。无论图像背景如何,白色背景都会强制与黑色点形成对比。@Anže您的建议对我很有用,谢谢您也许您可以使用以始终拥有可见颜色的点,也许是异或模式?在这种情况下,如果你不确定你的背景颜色是否会产生对比度,你必须创建自己的对比度。我的意思是画点,比如在较大的白色圆圈上画一个小的黑色圆圈。无论图像背景如何,白色背景都会强制与黑色点形成对比。@Anže您的建议对我很有用,谢谢您也许您可以使用始终具有可见颜色的点,也许是XOR模式?