📅  最后修改于: 2023-12-03 15:18:50.061000             🧑  作者: Mango
在PyQt5中,您可以使用QPainter类来从任何图像创建圆形图像。下面是一些代码,可以帮助你实现这一点。
首先,您需要导入PyQt5和OpenCV模块。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QPixmap, QPainter
import cv2
接下来,您需要创建一个PyQt5应用程序:
app = QApplication(sys.argv)
为了在QWidget中显示图像,您需要创建一个QLabel:
widget = QWidget()
label = QLabel(widget)
在这一步中,您需要从图像、视频或相机加载图像。在这个例子中,我们将从文件加载图像。
image = cv2.imread("image.jpg")
在这个例子中,我们需要将图像大小调整为QLabel的大小。
image = cv2.resize(image, (label.width(), label.height()))
接下来,我们将使用QPainter类从图像中创建圆形图像。这一步需要以下代码:
pixmap = QPixmap(label.width(), label.height())
pixmap.fill(Qt.transparent)
painter = QPainter(pixmap)
painter.setRenderHint(QPainter.Antialiasing)
painter.setPen(QPen(Qt.white, 20))
painter.setBrush(Qt.white)
painter.drawEllipse(0, 0, label.width(), label.height())
painter.setClipPath(QPainterPath(QRectF(0, 0, label.width(), label.height())))
painter.drawPixmap(0, 0, QPixmap.fromImage(QImage(image.data, image.shape[1], image.shape[0], QImage.Format_RGB888).rgbSwapped()))
painter.end()
最后,您需要将从图像创建的圆形图像显示在QLabel中:
label.setPixmap(pixmap)
widget.show()
sys.exit(app.exec_())
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QPixmap, QPainter, QPen, QPainterPath, QImage
from PyQt5.QtCore import Qt
import cv2
app = QApplication(sys.argv)
widget = QWidget()
label = QLabel(widget)
image = cv2.imread("image.jpg")
image = cv2.resize(image, (label.width(), label.height()))
pixmap = QPixmap(label.width(), label.height())
pixmap.fill(Qt.transparent)
painter = QPainter(pixmap)
painter.setRenderHint(QPainter.Antialiasing)
painter.setPen(QPen(Qt.white, 20))
painter.setBrush(Qt.white)
painter.drawEllipse(0, 0, label.width(), label.height())
painter.setClipPath(QPainterPath(QRectF(0, 0, label.width(), label.height())))
painter.drawPixmap(0, 0, QPixmap.fromImage(QImage(image.data, image.shape[1], image.shape[0], QImage.Format_RGB888).rgbSwapped()))
painter.end()
label.setPixmap(pixmap)
widget.show()
sys.exit(app.exec_())
以上就是使用PyQt5从任何图像创建圆形图像的代码片段。通过这个例子,你应该能够更好地理解如何使用QPainter类在PyQt5中从任何图像创建圆形图像。