2015-07-01 2 views
1

Я пытаюсь сделать небольшую функцию, которая будет иметь уменьшенный снимок, который был отображен в два раза требуемого размера и изменяет его размер с помощью сглаживания, чтобы результат был приятным сглаженным миниатюром.Как я могу использовать PySide для быстрого изменения размера 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 - я пропускаю что-то очевидное здесь?

ответ

1

Я раньше не использовал PySide, но делает .scaled выполняет замену на месте. Документация, похоже, предполагает, что она возвращает новый QPixmap, который ваш код не сохраняет.

Может быть, это поможет:

bitmap=bitmap.scaled(QtCore.QSize(outSize, outSize),aspectMode=QtCore.Qt.KeepAspectRatio,  mode=QtCore.Qt.SmoothTransformation) 
+0

Вот установил ее! Я должен был заметить, что раньше: D спасибо за вашу помощь – Nodgers