def __init__(self, view): DialogBase.__init__(self, "Power", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view self.setWindowTitle( "Power - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout(w) powerLabel = QtGui.QLabel("Power:") grid.addWidget(powerLabel, 0, 0) self.power = QtGui.QDoubleSpinBox() self.power.setMinimum(0.0) self.power.setMaximum(100.0) self.power.setValue(1.0) self.power.setSingleStep(0.01) grid.addWidget(self.power, 0, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 1, 0) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 1, 0) self.addWidget(w)
class PowerDialog(DialogBase): def __init__(self, view): DialogBase.__init__(self, "Power", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view self.setWindowTitle( "Power - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout(w) powerLabel = QtGui.QLabel("Power:") grid.addWidget(powerLabel, 0, 0) self.power = QtGui.QDoubleSpinBox() self.power.setMinimum(0.0) self.power.setMaximum(100.0) self.power.setValue(1.0) self.power.setSingleStep(0.01) grid.addWidget(self.power, 0, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 1, 0) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 1, 0) self.addWidget(w) def slotApply(self): power = self.power.value() if (power == 1.): return self.power.setValue(1.) if self.view.getCurrentDocument().getType( ) == "color_rgb" or self.view.getCurrentDocument().getType( ) == "color_rgbl": if len(self.chooseColor.getSelectedChannels()) == 0: # XXX: Maybe give a info box explaining you have to pick a color. return if self.view.getCurrentDocument().getType() == "color_rgb": rgb = [None, None, None] else: # RGBL rgb = [None, None, None, None] for i in self.chooseColor.getSelectedChannels(): rgb[i] = imageLib.power( self.view.getCurrentDocument().rgb[i].data, power) self.view.getCurrentDocument().replaceData(rgb, "Power") else: self.view.getCurrentDocument().replaceData( imageLib.power(self.view.getCurrentDocument().data, power), "Power") self.view.getCurrentDocument().refresh(True) def slotOk(self): self.accept() self.slotApply()
def __init__(self, view): DialogBase.__init__(self, "DDP", ok=True, cancel=True, modal=True, parent=view) self.view = view self.setWindowTitle( "DDP - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout(w) aValueLabel = QtGui.QLabel("A Value:") grid.addWidget(aValueLabel, 0, 0) self.a = QtGui.QSpinBox() self.a.setValue(1) self.a.setMinimum(1) self.a.setMaximum(999999) grid.addWidget(self.a, 0, 1) bValueLabel = QtGui.QLabel("B Value:") grid.addWidget(bValueLabel, 2, 0) self.b = QtGui.QSpinBox() self.b.setMaximum(999999) self.b.setMinimum(1) self.b.setValue(1) grid.addWidget(self.b, 2, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 3, 0) self.a.setValue( int(self.view.getCurrentDocument().rgb[0].background / 2)) self.b.setValue( int(0.10 * self.view.getCurrentDocument().rgb[0].background)) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 3, 0) self.a.setValue( int(self.view.getCurrentDocument().rgb[0].background / 2)) self.b.setValue( int(0.10 * self.view.getCurrentDocument().rgb[0].background)) else: self.a.setValue(int(self.view.getCurrentDocument().background / 2)) self.b.setValue( int(0.10 * self.view.getCurrentDocument().background)) self.edgeEmphasis = QtGui.QCheckBox("Edge Emphasis") self.edgeEmphasis.setChecked(True) grid.addWidget(self.edgeEmphasis, 4, 0) self.addWidget(w)
def __init__(self, view): DialogBase.__init__(self, "Shift Image", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view if self.view.getCurrentDocument().getType( ) == "color_rgb" or self.view.getCurrentDocument().getType( ) == "color_rgbl": sizeX = self.view.getCurrentDocument().rgb[0].data.shape[1] sizeY = self.view.getCurrentDocument().rgb[0].data.shape[0] else: sizeX = self.view.getCurrentDocument().data.shape[1] sizeY = self.view.getCurrentDocument().data.shape[0] self.setWindowTitle( "Shift Image - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout() w.setLayout(grid) shiftXLabel = QtGui.QLabel("Shift X:") grid.addWidget(shiftXLabel, 0, 0) self.shiftX = QtGui.QDoubleSpinBox() self.shiftX.setMinimum(-sizeX) self.shiftX.setMaximum(sizeX) self.shiftX.setValue(0.0) self.shiftX.setSingleStep(0.01) grid.addWidget(self.shiftX, 0, 1) shiftYLabel = QtGui.QLabel("Shift Y:") grid.addWidget(shiftYLabel, 1, 0) self.shiftY = QtGui.QDoubleSpinBox() self.shiftY.setMinimum(-sizeY) self.shiftY.setMaximum(sizeY) self.shiftY.setValue(0.0) self.shiftY.setSingleStep(0.01) grid.addWidget(self.shiftY, 1, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 2, 0) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 2, 0) self.addWidget(w)
def __init__(self, view): DialogBase.__init__(self, "Rotate Image", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view self.setWindowTitle( "Rotate Image - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout(w) rotateLabel = QtGui.QLabel("Rotate:") grid.addWidget(rotateLabel, 0, 0) self.rotate = QtGui.QDoubleSpinBox() self.rotate.setMinimum(-360.0) self.rotate.setMaximum(360.0) self.rotate.setValue(0.0) self.rotate.setSingleStep(0.01) grid.addWidget(self.rotate, 0, 1) buttonGroup = QtGui.QButtonGroup() buttonBox = QtGui.QGroupBox() buttonLayout = QtGui.QHBoxLayout() buttonBox.setLayout(buttonLayout) grid.addWidget(buttonBox, 1, 0, 1, 2) self.radians = QtGui.QRadioButton("Radians") buttonGroup.addButton(self.radians) buttonLayout.addWidget(self.radians) self.degrees = QtGui.QRadioButton("Degrees") buttonGroup.addButton(self.degrees) buttonLayout.addWidget(self.degrees) self.radians.toggle() if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 2, 0, 1, 2) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 2, 0, 1, 2) else: self.expandCanvas = QtGui.QCheckBox("Fit Canvas") grid.addWidget(self.expandCanvas, 2, 0, 1, 2) self.addWidget(w)
class DDPDialog(DialogBase): def __init__(self, view): DialogBase.__init__(self, "DDP", ok=True, cancel=True, modal=True, parent=view) self.view = view self.setWindowTitle( "DDP - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout(w) aValueLabel = QtGui.QLabel("A Value:") grid.addWidget(aValueLabel, 0, 0) self.a = QtGui.QSpinBox() self.a.setValue(1) self.a.setMinimum(1) self.a.setMaximum(999999) grid.addWidget(self.a, 0, 1) bValueLabel = QtGui.QLabel("B Value:") grid.addWidget(bValueLabel, 2, 0) self.b = QtGui.QSpinBox() self.b.setMaximum(999999) self.b.setMinimum(1) self.b.setValue(1) grid.addWidget(self.b, 2, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 3, 0) self.a.setValue( int(self.view.getCurrentDocument().rgb[0].background / 2)) self.b.setValue( int(0.10 * self.view.getCurrentDocument().rgb[0].background)) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 3, 0) self.a.setValue( int(self.view.getCurrentDocument().rgb[0].background / 2)) self.b.setValue( int(0.10 * self.view.getCurrentDocument().rgb[0].background)) else: self.a.setValue(int(self.view.getCurrentDocument().background / 2)) self.b.setValue( int(0.10 * self.view.getCurrentDocument().background)) self.edgeEmphasis = QtGui.QCheckBox("Edge Emphasis") self.edgeEmphasis.setChecked(True) grid.addWidget(self.edgeEmphasis, 4, 0) self.addWidget(w) def slotApply(self): aValue = self.a.value() bValue = self.b.value() if aValue == 0 or bValue == 0: return if self.view.getCurrentDocument().getType( ) == "color_rgb" or self.view.getCurrentDocument().getType( ) == "color_rgbl": if len(self.chooseColor.getSelectedChannels()) == 0: # XXX: Maybe give a info box explaining you have to pick a color. return if self.view.getCurrentDocument().getType() == "color_rgb": rgb = [None, None, None] else: # RGBL rgb = [None, None, None, None] for i in self.chooseColor.getSelectedChannels(): rgb[i] = imageLib.DDP( self.view.getCurrentDocument().rgb[i].data, aValue, bValue, self.edgeEmphasis.isChecked()) self.view.getCurrentDocument().replaceData(rgb, "DDP") else: self.view.getCurrentDocument().replaceData( imageLib.DDP(self.view.getCurrentDocument().data, aValue, bValue, self.edgeEmphasis.isChecked()), "DDP") self.view.getCurrentDocument().refresh(True) def slotOk(self): self.accept() self.slotApply()
class RotateDialog(DialogBase): def __init__(self, view): DialogBase.__init__(self, "Rotate Image", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view self.setWindowTitle( "Rotate Image - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout(w) rotateLabel = QtGui.QLabel("Rotate:") grid.addWidget(rotateLabel, 0, 0) self.rotate = QtGui.QDoubleSpinBox() self.rotate.setMinimum(-360.0) self.rotate.setMaximum(360.0) self.rotate.setValue(0.0) self.rotate.setSingleStep(0.01) grid.addWidget(self.rotate, 0, 1) buttonGroup = QtGui.QButtonGroup() buttonBox = QtGui.QGroupBox() buttonLayout = QtGui.QHBoxLayout() buttonBox.setLayout(buttonLayout) grid.addWidget(buttonBox, 1, 0, 1, 2) self.radians = QtGui.QRadioButton("Radians") buttonGroup.addButton(self.radians) buttonLayout.addWidget(self.radians) self.degrees = QtGui.QRadioButton("Degrees") buttonGroup.addButton(self.degrees) buttonLayout.addWidget(self.degrees) self.radians.toggle() if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 2, 0, 1, 2) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 2, 0, 1, 2) else: self.expandCanvas = QtGui.QCheckBox("Fit Canvas") grid.addWidget(self.expandCanvas, 2, 0, 1, 2) self.addWidget(w) def slotApply(self): rot = self.rotate.value() if rot == 0.: return self.rotate.setValue(0.) if self.degrees.isChecked(): print rot rot = rot * math.pi / 180 if self.view.getCurrentDocument().getType( ) == "color_rgb" or self.view.getCurrentDocument().getType( ) == "color_rgbl": if len(self.chooseColor.getSelectedChannels()) == 0: # XXX: Maybe give a info box explaining you have to pick a color. return if self.view.getCurrentDocument().getType() == "color_rgb": rgb = [None, None, None] else: # RGBL rgb = [None, None, None, None] for i in self.chooseColor.getSelectedChannels(): rgb[i] = imageLib.rotate( self.view.getCurrentDocument().rgb[i].data, rot, False) self.view.getCurrentDocument().replaceData(rgb, "Rotate") else: self.view.getCurrentDocument().replaceData( imageLib.rotate(self.view.getCurrentDocument().data, rot, self.expandCanvas.isChecked()), "Rotate") self.view.getCurrentDocument().refresh(True) def slotOk(self): self.slotApply() self.accept()
class ShiftDialog(DialogBase): def __init__(self, view): DialogBase.__init__(self, "Shift Image", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view if self.view.getCurrentDocument().getType( ) == "color_rgb" or self.view.getCurrentDocument().getType( ) == "color_rgbl": sizeX = self.view.getCurrentDocument().rgb[0].data.shape[1] sizeY = self.view.getCurrentDocument().rgb[0].data.shape[0] else: sizeX = self.view.getCurrentDocument().data.shape[1] sizeY = self.view.getCurrentDocument().data.shape[0] self.setWindowTitle( "Shift Image - " + str(self.view.getCurrentDocument().getURL().getFileName())) w = QtGui.QWidget() grid = QtGui.QGridLayout() w.setLayout(grid) shiftXLabel = QtGui.QLabel("Shift X:") grid.addWidget(shiftXLabel, 0, 0) self.shiftX = QtGui.QDoubleSpinBox() self.shiftX.setMinimum(-sizeX) self.shiftX.setMaximum(sizeX) self.shiftX.setValue(0.0) self.shiftX.setSingleStep(0.01) grid.addWidget(self.shiftX, 0, 1) shiftYLabel = QtGui.QLabel("Shift Y:") grid.addWidget(shiftYLabel, 1, 0) self.shiftY = QtGui.QDoubleSpinBox() self.shiftY.setMinimum(-sizeY) self.shiftY.setMaximum(sizeY) self.shiftY.setValue(0.0) self.shiftY.setSingleStep(0.01) grid.addWidget(self.shiftY, 1, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 2, 0) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 2, 0) self.addWidget(w) def slotApply(self): shiftXValue = self.shiftX.value() shiftYValue = self.shiftY.value() if shiftYValue == 0. and shiftXValue == 0.: return self.shiftX.setValue(0.) self.shiftY.setValue(0.) if self.view.getCurrentDocument().getType( ) == "color_rgb" or self.view.getCurrentDocument().getType( ) == "color_rgbl": if len(self.chooseColor.getSelectedChannels()) == 0: # XXX: Maybe give a info box explaining you have to pick a color. return if self.view.getCurrentDocument().getType() == "color_rgb": rgb = [None, None, None] else: # RGBL rgb = [None, None, None, None] for i in self.chooseColor.getSelectedChannels(): rgb[i] = imageLib.shift( self.view.getCurrentDocument().rgb[i].data, shiftXValue, shiftYValue) self.view.getCurrentDocument().replaceData(rgb, "Shift") else: self.view.getCurrentDocument().replaceData( imageLib.shift(self.view.getCurrentDocument().data, shiftXValue, shiftYValue), "Shift") self.view.getCurrentDocument().refresh(True) def slotOk(self): self.accept() self.slotApply()
def __init__(self, view): DialogBase.__init__(self, "Scale Image", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view w = QtGui.QWidget() grid = QtGui.QGridLayout(w) self.setWindowTitle( "Scale Image - " + str(self.view.getCurrentDocument().getURL().getFileName())) self.shape = self.view.getCurrentDocument().getShape() scaleXLabel = QtGui.QLabel("Scale X:") grid.addWidget(scaleXLabel, 0, 0) self.scaleX = QtGui.QDoubleSpinBox() self.scaleX.setMinimum(0.0) self.scaleX.setMaximum(100.0) self.scaleX.setValue(1.0) self.scaleX.setSingleStep(0.01) self.scaleX.valueChanged.connect(self.slotScaleXChange) grid.addWidget(self.scaleX, 0, 1) sizeScaleXLabel = QtGui.QLabel(" Size Scale X:") grid.addWidget(sizeScaleXLabel, 1, 0) self.sizeScaleX = QtGui.QSpinBox() self.sizeScaleX.setMaximum(999999) self.sizeScaleX.setMinimum(0) self.sizeScaleX.setValue(self.shape[1]) self.sizeScaleX.valueChanged.connect(self.slotSizeScaleXChange) grid.addWidget(self.sizeScaleX, 1, 1) scaleYLabel = QtGui.QLabel("Scale Y:") grid.addWidget(scaleYLabel, 2, 0) self.scaleY = QtGui.QDoubleSpinBox() self.scaleY.setMinimum(0.0) self.scaleY.setMaximum(100.0) self.scaleY.setValue(1.0) self.scaleY.setSingleStep(0.01) self.scaleY.valueChanged.connect(self.slotScaleYChange) grid.addWidget(self.scaleY, 2, 1) sizeScaleYLabel = QtGui.QLabel(" Size Scale Y:") grid.addWidget(sizeScaleYLabel, 3, 0) self.sizeScaleY = QtGui.QSpinBox() self.sizeScaleY.setMaximum(999999) self.sizeScaleY.setMinimum(0) self.sizeScaleY.setValue(self.shape[0]) self.sizeScaleY.valueChanged.connect(self.slotSizeScaleYChange) grid.addWidget(self.sizeScaleY, 3, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 4, 0) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 4, 0) else: self.expandCanvas = QtGui.QCheckBox("Fit Canvas") grid.addWidget(self.expandCanvas, 4, 0) self.addWidget(w)
class ScaleDialog(DialogBase): def __init__(self, view): DialogBase.__init__(self, "Scale Image", ok=True, apply=True, cancel=True, modal=True, parent=view) self.view = view w = QtGui.QWidget() grid = QtGui.QGridLayout(w) self.setWindowTitle( "Scale Image - " + str(self.view.getCurrentDocument().getURL().getFileName())) self.shape = self.view.getCurrentDocument().getShape() scaleXLabel = QtGui.QLabel("Scale X:") grid.addWidget(scaleXLabel, 0, 0) self.scaleX = QtGui.QDoubleSpinBox() self.scaleX.setMinimum(0.0) self.scaleX.setMaximum(100.0) self.scaleX.setValue(1.0) self.scaleX.setSingleStep(0.01) self.scaleX.valueChanged.connect(self.slotScaleXChange) grid.addWidget(self.scaleX, 0, 1) sizeScaleXLabel = QtGui.QLabel(" Size Scale X:") grid.addWidget(sizeScaleXLabel, 1, 0) self.sizeScaleX = QtGui.QSpinBox() self.sizeScaleX.setMaximum(999999) self.sizeScaleX.setMinimum(0) self.sizeScaleX.setValue(self.shape[1]) self.sizeScaleX.valueChanged.connect(self.slotSizeScaleXChange) grid.addWidget(self.sizeScaleX, 1, 1) scaleYLabel = QtGui.QLabel("Scale Y:") grid.addWidget(scaleYLabel, 2, 0) self.scaleY = QtGui.QDoubleSpinBox() self.scaleY.setMinimum(0.0) self.scaleY.setMaximum(100.0) self.scaleY.setValue(1.0) self.scaleY.setSingleStep(0.01) self.scaleY.valueChanged.connect(self.slotScaleYChange) grid.addWidget(self.scaleY, 2, 1) sizeScaleYLabel = QtGui.QLabel(" Size Scale Y:") grid.addWidget(sizeScaleYLabel, 3, 0) self.sizeScaleY = QtGui.QSpinBox() self.sizeScaleY.setMaximum(999999) self.sizeScaleY.setMinimum(0) self.sizeScaleY.setValue(self.shape[0]) self.sizeScaleY.valueChanged.connect(self.slotSizeScaleYChange) grid.addWidget(self.sizeScaleY, 3, 1) if self.view.getCurrentDocument().getType() == "color_rgb": self.chooseColor = ChooseColorRGBLChannel(luminance=False) grid.addWidget(self.chooseColor, 4, 0) elif self.view.getCurrentDocument().getType() == "color_rgbl": self.chooseColor = ChooseColorRGBLChannel(luminance=True) grid.addWidget(self.chooseColor, 4, 0) else: self.expandCanvas = QtGui.QCheckBox("Fit Canvas") grid.addWidget(self.expandCanvas, 4, 0) self.addWidget(w) def slotScaleXChange(self, value): self.sizeScaleX.setValue(int(value * self.shape[1])) def slotScaleYChange(self, value): self.sizeScaleY.setValue(int(value * self.shape[0])) def slotSizeScaleXChange(self, value): self.scaleX.setValue(float(value) / float(self.shape[1])) def slotSizeScaleYChange(self, value): self.scaleY.setValue(float(value) / float(self.shape[0])) def slotApply(self): scaleXValue = self.scaleX.value() scaleYValue = self.scaleY.value() if scaleXValue == 1. and scaleYValue == 1.: return self.scaleX.setValue(1.) self.scaleY.setValue(1.) if self.view.getCurrentDocument().getType( ) == "color_rgb" or self.view.getCurrentDocument().getType( ) == "color_rgbl": if len(self.chooseColor.getSelectedChannels()) == 0: # XXX: Maybe give a info box explaining you have to pick a color. return if self.view.getCurrentDocument().getType() == "color_rgb": rgb = [None, None, None] else: # RGBL rgb = [None, None, None, None] for i in self.chooseColor.getSelectedChannels(): rgb[i] = imageLib.scale( self.view.getCurrentDocument().rgb[i].data, scaleXValue, scaleYValue, False) self.view.getCurrentDocument().replaceData(rgb, "Scale") else: self.view.getCurrentDocument().replaceData( imageLib.scale(self.view.getCurrentDocument().data, scaleXValue, scaleYValue, self.expandCanvas.isChecked()), "Scale") self.view.getCurrentDocument().refresh(True) def slotOk(self): self.accept() self.slotApply()