|
@@ -1,13 +1,14 @@
|
|
|
+import PIL.Image
|
|
|
+import PIL.ImageEnhance
|
|
|
from qtpy.QtCore import Qt
|
|
|
from qtpy import QtGui
|
|
|
from qtpy import QtWidgets
|
|
|
|
|
|
-from PIL import Image
|
|
|
-from PIL import ImageEnhance
|
|
|
+from .. import utils
|
|
|
|
|
|
|
|
|
class BrightnessContrastDialog(QtWidgets.QDialog):
|
|
|
- def __init__(self, filename, callback, parent=None):
|
|
|
+ def __init__(self, img, callback, parent=None):
|
|
|
super(BrightnessContrastDialog, self).__init__(parent)
|
|
|
self.setModal(True)
|
|
|
self.setWindowTitle("Brightness/Contrast")
|
|
@@ -20,26 +21,25 @@ class BrightnessContrastDialog(QtWidgets.QDialog):
|
|
|
formLayout.addRow(self.tr("Contrast"), self.slider_contrast)
|
|
|
self.setLayout(formLayout)
|
|
|
|
|
|
- self.img = Image.open(filename).convert("RGBA")
|
|
|
+ assert isinstance(img, PIL.Image.Image)
|
|
|
+ self.img = img
|
|
|
self.callback = callback
|
|
|
|
|
|
def onNewValue(self, value):
|
|
|
- brightness = self.slider_brightness.value() / 100.0
|
|
|
- contrast = self.slider_contrast.value() / 100.0
|
|
|
+ brightness = self.slider_brightness.value() / 50.0
|
|
|
+ contrast = self.slider_contrast.value() / 50.0
|
|
|
|
|
|
img = self.img
|
|
|
- img = ImageEnhance.Brightness(img).enhance(brightness)
|
|
|
- img = ImageEnhance.Contrast(img).enhance(contrast)
|
|
|
+ img = PIL.ImageEnhance.Brightness(img).enhance(brightness)
|
|
|
+ img = PIL.ImageEnhance.Contrast(img).enhance(contrast)
|
|
|
|
|
|
- bytes = img.tobytes("raw", "RGBA")
|
|
|
- qimage = QtGui.QImage(
|
|
|
- bytes, img.size[0], img.size[1], QtGui.QImage.Format_RGB32
|
|
|
- ).rgbSwapped()
|
|
|
+ img_data = utils.img_pil_to_data(img)
|
|
|
+ qimage = QtGui.QImage.fromData(img_data)
|
|
|
self.callback(qimage)
|
|
|
|
|
|
def _create_slider(self):
|
|
|
slider = QtWidgets.QSlider(Qt.Horizontal)
|
|
|
- slider.setRange(0, 300)
|
|
|
- slider.setValue(100)
|
|
|
+ slider.setRange(0, 150)
|
|
|
+ slider.setValue(50)
|
|
|
slider.valueChanged.connect(self.onNewValue)
|
|
|
return slider
|