Pythonで画像にボックスシャドウを付ける

I wrote: 2016/10/31

Pythonで画像にボックスシャドウを付けます。もちろんPyQtを使うよ。
PyQtは簡単にGUI開発ができるのでいいですね(*´ω`*)

ボックスシャドウつまりCSSで使われるbox-shadowのことです。
ボックスシャドウを実現するために、QGraphicsDropShadowEffectを使います。
いかにも画像に影を付ける画像処理ですよって感じなアルファベットですね。
それと、画像の読み込みにはQPixmapを使っています。
 
以下はソース。
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)
        
        view = QtGui.QGraphicsView(self)
        view.setGeometry(0, 0, 400, 320)
        scene = QtGui.QGraphicsScene()
        item = QtGui.QGraphicsPixmapItem(QtGui.QPixmap('./sample01.jpg'))

        effect = QtGui.QGraphicsDropShadowEffect()
        effect.setColor(QtCore.Qt.black)
        effect.setOffset(4,4)
        effect.setBlurRadius(40)
        item.setGraphicsEffect(effect)

        scene.addItem(item)
        view.setScene(scene)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    sample = Sample()
    sample.show()
    sys.exit(app.exec_())
実行されたアプリケーション
55