我正在尝试制作一个小函数,该函数将获取一个渲染为所需大小两倍的缩略图,并使用抗锯齿调整其大小,以便生成一个平滑的缩略图。
这就是我目前所掌握的:
from PySide import QtGui, QtCore
def resizeImage(image, outSize):
bitmap = QtGui.QPixmap(image)
bitmap.scaled(QtCore.QSize(outSize, outSize),aspectMode=QtCore.Qt.KeepAspectRatio, mode=QtCore.Qt.SmoothTransformation) # original is larger than this
print bitmap.size()
file = QtCore.QFile(image)
file.open(QtCore.QIODevice.WriteOnly)
bitmap.save(file)
file.close()
resizeImage("image.png", outSize = 256)
问题是,当我调用bitmap.scaled时,像素图的大小似乎没有改变——我是不是遗漏了一些明显的东西?
我以前没有使用过PySide,但做了.scaled的就地替换。文档似乎建议它返回一个新的QPixmap,而您的代码没有保存它。
也许这会有所帮助:
bitmap=bitmap.scaled(QtCore.QSize(outSize, outSize),aspectMode=QtCore.Qt.KeepAspectRatio, mode=QtCore.Qt.SmoothTransformation)