88 image = Application.activeDocument()
89 original = image.activeNode()
90 working_layer = original
93 if self.
keepOriginal.isChecked()
or original.type() !=
"paintlayer":
94 working_layer = image.createNode(
"working",
"paintlayer")
95 working_layer.setColorSpace(
96 original.colorModel(),
97 original.colorSpace(),
99 working_layer.writeBytes(
100 original.readBytes(0, 0, image.width(), image.height()),
101 0, 0, image.width(), image.height())
104 original.parentNode().addChildNode(working_layer, original)
106 image.setActiveNode(working_layer)
110 if (self.
cmbMode.currentIndex() == 1
111 or self.
cmbMode.currentIndex() == 3):
113 colors_layer = working_layer.duplicate()
114 colors_layer.setName(
"colors")
116 original.parentNode().addChildNode(working_layer, colors_layer)
119 if (self.
cmbMode.currentIndex() == 2
120 or self.
cmbMode.currentIndex() == 3):
121 filter = Application.filter(
"desaturate")
122 filter.apply(working_layer, 0, 0, image.width(), image.height())
125 blur_layer = working_layer.duplicate()
126 blur_layer.setName(
"blur")
128 original.parentNode().addChildNode(blur_layer, working_layer)
131 filter = Application.filter(
"gaussian blur")
132 filter_configuration = filter.configuration()
133 filter_configuration.setProperty(
"horizRadius", self.
intRadius.
value())
134 filter_configuration.setProperty(
"vertRadius", self.
intRadius.
value())
135 filter_configuration.setProperty(
"lockAspect",
True)
136 filter.setConfiguration(filter_configuration)
137 filter.apply(blur_layer, 0, 0, image.width(), image.height())
139 if self.
cmbMode.currentIndex() <= 3:
140 blur_layer.setBlendingMode(
"grain_extract")
141 working_layer = image.mergeDown(blur_layer)
145 if self.
cmbMode.currentIndex() == 3:
146 working_layer.setBlendingMode(
"value")
147 working_layer = image.mergeDown(working_layer)
152 if self.
cmbMode.currentIndex() == 1:
155 working_layer = image.mergeDown(working_layer)
158 image.setActiveNode(blur_layer)