1

我正在使用 Qt 的 PySide2 实现制作桌面应用程序。这个应用程序需要做的是向用户显示高质量的图像,但是当我使用 QPixmap 类时,图像的质量总是明显低于它们所来自的 JPEG 文件的质量。

我通过使用 QtCore.Qt.KeepAspectRatio 和 QtCore.Qt.SmoothTransformation 标签来遵循其他人的建议,这确实有所帮助,但是图像仍然质量低下,图像中的任何小文本都难以辨认。

我正在使用此代码向用户显示图像。

pixmap = QtGui.QPixmap(os.path.join(self.imageFolder,
    imageSplit[0] + '_' + str(self.currentPageNum) + '_' + '0'))
pixmap = pixmap.scaled(self.imageWidth, self.imageHeight,
    QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
icon = QtGui.QIcon(pixmap)
self.imageIcon.setIcon(icon)

然而,如前所述,图像的质量明显低于输入 JPEG。有什么办法可以获得更高的图像质量?如果没有,如果我需要向用户展示更高质量的图像,您还会推荐我做些什么吗?

根据要求,这是一个输入图像与它的像素图表示的示例。 输入图像

在 Pixmap 中使用后

4

1 回答 1

1

TL; 博士;使用路径将图像上传到QIcon 。


QIcon可以在不使用 QPixmap 的情况下加载图像,当您使用该paint()方法绘制图像时,它将使用该元素的几何属性对其进行缩放。

相反,如果您使用 QPixmap 对其进行缩放,您将由于下采样/上采样而引入更多错误,除了平滑之外,它还会增加更多错误。

于 2019-09-13T19:34:24.460 回答