カテゴリー
D-Studio プログラム

pyQtでGUI上画像表示

PythonのGUI開発においての覚書

GUIで画像表示を行う場合のあれこれ

#!/usr/bin/python3
# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import QMainWindow, QLabel


class ImgView(QMainWindow):

	def __init__(self):
		super().__init__()
		self.initUI()

	def initUI(self):
		# 画像表示領域 ラベルを作ってその中に画像を置く
		self.lbl_image = QLabel(self)
		self.lbl_image.move(pos_x, pos_y)
		self.lbl_image.setFixedWidth(width)
		self.lbl_image.setFixedHeight(height)

        def viewevent(self):
                #Pixmapフォーマットの画像を表示させる
                self.lbl_image.setPixmap(pix)
</code></pre>
<!-- /wp:code -->

[解説]

・表示部分はQLabelを利用

・表示させるのはPixmapの画像

要はPixmapファイルが作れれば結構簡単に画像表示できます!

なのでpillowで取得した画像データをpixmapへ変換する場合は下記の様に。

from PyQt5 import QtGui

from PIL import Image, ImageOps    

def change_pil_to_pixmap(self, pilimg):
        rgb_im = pilimg.convert('RGBA')
        data = rgb_im.tobytes("raw", "RGBA")
        qim = QtGui.QImage(data, rgb_im.size[0], rgb_im.size[1], QtGui.QImage.Format_ARGB32)
        pix_img = QtGui.QPixmap.fromImage(qim)
        return pix_img

画像データ取得については下記参考

 外部リンク

pillowのフォーマットで色々画像処理できます。

  • 開発紹介

    ソフトウェア開発でお手伝いさせていただいた案件が論文に! http://www.spring8.or.jp/j…


  • スキャンプログラム

    今回研究施設向けのスキャンプログラムの作成を行いました。 こちら新しい技術の導入があり、その技術利用しながら作…


  • TIFヘッダ編集

    久しぶりの投稿はPythonプログラム! D-Studioでは現在Pythonをメインに仕事してます! 研究施…