如何使用 PySide 快速调整 PNG 的大小?
How can I use PySide to quickly resize a PNG?
我正在尝试制作一个小函数,该函数将采用已渲染为所需大小两倍的缩略图并使用抗锯齿调整其大小,以便结果是一个非常平滑的缩略图。
这是我目前得到的:
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 会进行就地替换。文档似乎建议它 returns 一个新的 QPixmap,您的代码没有保存它。
也许这会有所帮助:
bitmap=bitmap.scaled(QtCore.QSize(outSize, outSize),aspectMode=QtCore.Qt.KeepAspectRatio, mode=QtCore.Qt.SmoothTransformation)
我正在尝试制作一个小函数,该函数将采用已渲染为所需大小两倍的缩略图并使用抗锯齿调整其大小,以便结果是一个非常平滑的缩略图。
这是我目前得到的:
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 会进行就地替换。文档似乎建议它 returns 一个新的 QPixmap,您的代码没有保存它。
也许这会有所帮助:
bitmap=bitmap.scaled(QtCore.QSize(outSize, outSize),aspectMode=QtCore.Qt.KeepAspectRatio, mode=QtCore.Qt.SmoothTransformation)