Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在Qt中使绘图从背景中脱颖而出?_C++_Qt - Fatal编程技术网

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模式?