| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import os
- from PySide6.QtCore import Qt, Signal, QPoint, QSize
- from PySide6.QtWidgets import QWidget
- from PySide6.QtGui import QPixmap, QPainter, QImage
- from Kikka.KikkaConst import *
- from .KikkaShell import ShellBase
- class ImageShellWindow(ShellBase):
- def __init__(self, parent=None):
- super().__init__(parent)
- self._size = QSize(512, 512)
- self._cavan_image = None
- self._pixmap = None
-
- def loadData(self, data):
- self._size = QSize(512, 512)
- img = QImage(os.path.join(RESOURCES_PATH, "shell.png"))
- self.setImage(img)
- self.repaint()
-
- def onKikkaOperation(self, operation, param):
- pass
- def setImage(self, image):
- # if isDebug:
- # image = self.debugDraw(image)
-
- self._cavan_image = QImage(self._size, QImage.Format.Format_ARGB32_Premultiplied)
- painter = QPainter(self._cavan_image)
- painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_Source)
- painter.fillRect(self._cavan_image.rect(), Qt.GlobalColor.transparent)
- painter.end()
- del painter
-
- painter = QPainter(self._cavan_image)
- painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_SourceOver)
- painter.drawImage(QPoint(), image)
- painter.end()
- del painter
- # self._cavan_image.save("shell_image.png")
-
- pixmap = QPixmap().fromImage(image, Qt.ImageConversionFlag.AutoColor)
- self._pixmap = pixmap
- self.setFixedSize(self._pixmap.size())
- self.setMask(self._pixmap.mask())
- self.repaint()
- def paintEvent(self, event):
- if self._pixmap is None:
- return
- painter = QPainter(self)
- painter.drawPixmap(QPoint(), self._pixmap)
|