Pythonで画像にぼかしをかけるっ!
I wrote: 2016/11/02
Pythonで画像にぼかしをかけて表示します。それとGUIツールのPyQtを使っています。
ぼかしをかけるのにはQGraphicsBlurEffectを使いぼかして描画しています。
このクラスのsetBlurRadius()の値が1だとほとんど変わらないので2以上がGoodです。
また、画像の読み込みにはQPixmapとQImageを使っています。
QGraphicsScene、QGraphicsPixmapItemやQPainterなどを使ってるのでやや複雑です。
まあ、こういう画像処理は慣れれば簡単になるはず…(´・ω・`)
以下はソース
Pythonで画像にぼかしをかけて表示します。それとGUIツールのPyQtを使っています。
ぼかしをかけるのにはQGraphicsBlurEffectを使いぼかして描画しています。
このクラスのsetBlurRadius()の値が1だとほとんど変わらないので2以上がGoodです。
また、画像の読み込みにはQPixmapとQImageを使っています。
QGraphicsScene、QGraphicsPixmapItemやQPainterなどを使ってるのでやや複雑です。
まあ、こういう画像処理は慣れれば簡単になるはず…(´・ω・`)
以下はソース
import sys from PyQt4 import QtGui, QtCore, uic from Foo import Ui_MainWindow class Sample(QtGui.QMainWindow): def __init__(self, parent = None): super(Sample, self).__init__(parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) def paintEvent(self,event): painter = QtGui.QPainter() painter.begin(self) painter.setPen(QtGui.QColor('#FFFFFF')) painter.setBrush(QtCore.Qt.white) painter.drawRect(event.rect()) effect = QtGui.QGraphicsBlurEffect() effect.setBlurRadius(3) scene = QtGui.QGraphicsScene() item = QtGui.QGraphicsPixmapItem() item.setPixmap(QtGui.QPixmap.fromImage(QtGui.QImage('./sample01.jpg'))) item.setGraphicsEffect(effect); scene.addItem(item) y = float((self.height() - scene.height()) / 2) target = QtCore.QRectF(0.0, y, float(self.width()), float(self.height())) source = QtCore.QRectF(0.0, y, float(scene.width()), float(scene.height())) scene.render(painter, target, source) painter.end() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) sample = Sample() sample.show() sys.exit(app.exec_())実行されたアプリケーション