mieki256's diary



2016/11/07(月) [n年前の日記]

#1 [python] お絵かきアプリを修正中

昨日書いたPythonスクリプトで、GIMPの着色処理っぽいことが実現できたので、先日書いたPySideを使ったお絵かきアプリモドキに反映させているところ。せっかくだからクラスの構成を変えようとして動かなくなってハマっていたり。

PySideのQImageについてメモ。 :

PySideには画像を保持できる QImage というクラスがあるのだけど、反転や回転の仕方が分かったのでメモ。

水平反転、垂直反転は、 _QImage.mirrored() を使えばできる。以下は、水平反転、垂直反転した画像を取得する例。
    def get_hflip_image(self, img):
        u"""水平反転したQImageを返す."""
        nimg = img.mirrored(True, False)
        return nimg
    
    def get_vflip_image(self, img):
        u"""垂直反転したQImageを返す."""
        nimg = img.mirrored(False, True)
        return nimg

回転は、 _QTransform_QImage.transformed() を使えばできる。以下は、0〜3 の指定値から、0度、+90度、+180度、+270度(-90度)の画像を取得する例。
    def get_rot_image(self, img, id):
        u"""回転したQImageを返す."""
        deg = id * 90
        rot = QTransform()
        rot = rot.rotate(deg)
        nimg = img.transformed(rot)
        return nimg

ちなみに、画像内のピクセル値を取得したり、反転や回転をする際は、QImage を利用するけれど。キャンバスに描画等をする際は _QPixmap を使ったほうが高速らしいのでそちらを使うようで。

_QImageとQPixmapの速度比較 - Sukalog

QImage から QPixmap への変換は、 _QPixmap.fromImage() を使えばできる。
        pm = QPixmap.fromImage(qimg)

以上、1 日分です。

過去ログ表示

Prev - 2016/11 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project