.
This commit is contained in:
parent
0befd1d9bd
commit
c89005aed0
@ -2,19 +2,21 @@ import math
|
|||||||
import random
|
import random
|
||||||
import re, time, datetime
|
import re, time, datetime
|
||||||
import numpy
|
import numpy
|
||||||
|
import io
|
||||||
import cv2
|
import cv2
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import gmic
|
import gmic
|
||||||
import json
|
import json
|
||||||
from skimage.color import rgb2lab, rgba2rgb
|
from skimage.color import rgb2lab, rgba2rgb
|
||||||
|
import qimage2ndarray
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal, QEvent
|
from PyQt5.QtCore import Qt, pyqtSignal, QEvent, QBuffer
|
||||||
from PyQt5.QtGui import QImage, QPainter, QPixmap, QIcon, QInputEvent, QTabletEvent, QMouseEvent, \
|
from PyQt5.QtGui import QImage, QPainter, QPixmap, QIcon, QInputEvent, QTabletEvent, QMouseEvent, \
|
||||||
QHelpEvent, QPaintEvent, QTransform
|
QHelpEvent, QPaintEvent, QTransform, QPixelFormat
|
||||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QFileDialog, QLabel, QSizePolicy, \
|
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QFileDialog, QLabel, QSizePolicy, \
|
||||||
QScrollArea, QAction, QToolButton, QMdiArea, QAbstractScrollArea, QCheckBox, QComboBox, QLineEdit
|
QScrollArea, QAction, QToolButton, QMdiArea, QAbstractScrollArea, QCheckBox, QComboBox, QLineEdit
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt5.QtCore import QTimer, QByteArray
|
||||||
from krita import Krita, DockWidget, DockWidgetFactory, DockWidgetFactoryBase, Extension
|
from krita import Krita, DockWidget, DockWidgetFactory, DockWidgetFactoryBase, Extension
|
||||||
from .util import dump_tablet_event, dump_mouse_event, get_qview, rgb2hsv
|
from .util import dump_tablet_event, dump_mouse_event, get_qview, rgb2hsv
|
||||||
|
|
||||||
@ -405,7 +407,7 @@ class CustomPreview(DockWidget):
|
|||||||
if mirror:
|
if mirror:
|
||||||
previewImage = doc.projection(int(((doc.width()) - o_w - c_x)), c_y, int(kis_canvas_controller.width() * factor), o_h)
|
previewImage = doc.projection(int(((doc.width()) - o_w - c_x)), c_y, int(kis_canvas_controller.width() * factor), o_h)
|
||||||
else:
|
else:
|
||||||
previewImage = doc.projection(c_x, c_y, o_w, o_h)
|
previewImage = doc.projection(c_x, c_y, o_w, o_h) # type: QBuffer
|
||||||
# previewImage = doc.projection(c_x, c_y if canvas.rotation() != 180 else int(((doc.height()) - o_h - c_y)), o_w, o_h)
|
# previewImage = doc.projection(c_x, c_y if canvas.rotation() != 180 else int(((doc.height()) - o_h - c_y)), o_w, o_h)
|
||||||
# pprint(("flipped:", self.flipped, "locked:", self.locked, "canvas.mirror:", mirror))
|
# pprint(("flipped:", self.flipped, "locked:", self.locked, "canvas.mirror:", mirror))
|
||||||
# pprint(("o_w:", o_w, "o_h:", o_h, "c_x", c_x, "c_y", c_y))
|
# pprint(("o_w:", o_w, "o_h:", o_h, "c_x", c_x, "c_y", c_y))
|
||||||
@ -415,7 +417,7 @@ class CustomPreview(DockWidget):
|
|||||||
width = dim.width() - self.scrollArea.contentsMargins().top() * 2
|
width = dim.width() - self.scrollArea.contentsMargins().top() * 2
|
||||||
height = dim.height() - self.scrollArea.contentsMargins().top() * 2
|
height = dim.height() - self.scrollArea.contentsMargins().top() * 2
|
||||||
previewImage = previewImage.scaled(width, height, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
previewImage = previewImage.scaled(width, height, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
||||||
previewImage = previewImage.mirrored(canvas.mirror(), 0) #type: QImage
|
previewImage = previewImage.mirrored(canvas.mirror(), 0) # type: QImage
|
||||||
if self.rot:
|
if self.rot:
|
||||||
rot = canvas.rotation()
|
rot = canvas.rotation()
|
||||||
transform = QTransform()
|
transform = QTransform()
|
||||||
@ -425,8 +427,10 @@ class CustomPreview(DockWidget):
|
|||||||
choice = self.dropdown.currentText()
|
choice = self.dropdown.currentText()
|
||||||
data = self.dropdown.currentData()
|
data = self.dropdown.currentData()
|
||||||
if choice != "Normal":
|
if choice != "Normal":
|
||||||
|
buffer = QBuffer()
|
||||||
im = Image.fromqimage(previewImage)
|
buffer.open(QBuffer.ReadWrite)
|
||||||
|
previewImage.save(buffer, "PNG")
|
||||||
|
im = Image.open(io.BytesIO(buffer.data()))
|
||||||
num_im = numpy.array(im)
|
num_im = numpy.array(im)
|
||||||
|
|
||||||
if choice == "NTSC":
|
if choice == "NTSC":
|
||||||
@ -490,9 +494,9 @@ class CustomPreview(DockWidget):
|
|||||||
ref = g.to_numpy_helper(astype=numpy.uint8, interleave=True, squeeze_shape=True)
|
ref = g.to_numpy_helper(astype=numpy.uint8, interleave=True, squeeze_shape=True)
|
||||||
ref = numpy.swapaxes(ref, 0, 1)
|
ref = numpy.swapaxes(ref, 0, 1)
|
||||||
|
|
||||||
img = Image.fromarray(ref)
|
qimg = qimage2ndarray.array2qimage(ref)
|
||||||
qimg = img.toqimage()
|
qimg.scaled(width, height)
|
||||||
qimg.scaled(width, height, Qt.KeepAspectRatio, Qt.SmoothTransformation)
|
|
||||||
previewImage = qimg
|
previewImage = qimg
|
||||||
resultImage = qimg.convertToFormat(QImage.Format_ARGB32_Premultiplied)
|
resultImage = qimg.convertToFormat(QImage.Format_ARGB32_Premultiplied)
|
||||||
resultImage.fill(0)
|
resultImage.fill(0)
|
||||||
|
|||||||
@ -3,3 +3,4 @@ gmic==2.9.4-a1
|
|||||||
scikit-image==0.25.2
|
scikit-image==0.25.2
|
||||||
numpy==2.2.3
|
numpy==2.2.3
|
||||||
pillow==11.1.0
|
pillow==11.1.0
|
||||||
|
qimage2ndarray==1.10.0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user