Source code for optimeed.visualize.gui.widgets.widget_image
from PyQt5 import QtWidgets, QtGui, QtCore
import base64
[docs]class Widget_image(QtWidgets.QLabel):
def __init__(self, image_b64):
"""This widget allows to easily visualize any png image and manages redimensioning
:param image_b64: An encoded base 64 png, typically base64(file.read())
"""
QtWidgets.QLabel.__init__(self)
self.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
self.initiaPixmap = QtGui.QPixmap()
self.set_image(image_b64)
self.installEventFilter(self)
self.setAlignment(QtCore.Qt.AlignCenter)
[docs] def eventFilter(self, source, event):
if source is self and event.type() == QtCore.QEvent.Resize:
self.setPixmap(self.initiaPixmap.scaled(self.size()*0.95, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation))
return super().eventFilter(source, event)
[docs] def set_image(self, image_b64):
""" Set new image to widget """
self.initiaPixmap.loadFromData(base64.b64decode(image_b64))
self.setPixmap(self.initiaPixmap)