QPainter 混合色
QPainter blend color
QPainter画的是叠加的。绘画时如何混合颜色?例如:如果在同一个位置画了一条绿线,然后又画了一条红线,那么这条线的颜色就是红色,我想要红绿混合。
颜色不是叠加而是覆盖,当它们不透明时会发生这种情况。
只要您使用 alpha 值小于 255 的颜色,颜色就会 "mixed".
pixmap = QtGui.QPixmap(200, 200)
pixmap.fill(QtCore.Qt.black)
qp = QtGui.QPainter(pixmap)
qp.setRenderHints(qp.Antialiasing)
qp.setPen(QtCore.Qt.NoPen)
qp.setBrush(QtGui.QColor(255, 0, 0, 85))
qp.drawEllipse(40, 0, 120, 120)
qp.setBrush(QtGui.QColor(0, 255, 0, 85))
qp.drawEllipse(0, 80, 120, 120)
qp.setBrush(QtGui.QColor(0, 0, 255, 85))
qp.drawEllipse(80, 80, 120, 120)
qp.end()
QPainter画的是叠加的。绘画时如何混合颜色?例如:如果在同一个位置画了一条绿线,然后又画了一条红线,那么这条线的颜色就是红色,我想要红绿混合。
颜色不是叠加而是覆盖,当它们不透明时会发生这种情况。
只要您使用 alpha 值小于 255 的颜色,颜色就会 "mixed".
pixmap = QtGui.QPixmap(200, 200)
pixmap.fill(QtCore.Qt.black)
qp = QtGui.QPainter(pixmap)
qp.setRenderHints(qp.Antialiasing)
qp.setPen(QtCore.Qt.NoPen)
qp.setBrush(QtGui.QColor(255, 0, 0, 85))
qp.drawEllipse(40, 0, 120, 120)
qp.setBrush(QtGui.QColor(0, 255, 0, 85))
qp.drawEllipse(0, 80, 120, 120)
qp.setBrush(QtGui.QColor(0, 0, 255, 85))
qp.drawEllipse(80, 80, 120, 120)
qp.end()