def create_shadow_layer(): global shadow_layer_id image.do_begin() if shadow_layer_id != None: layer.select_id(shadow_layer_id) layer.remove() layer.select_id(source_layer_id) layer.duplicate() layer.rasterize() layer.set_name(FRIENDLY_NAME + " of " + source_layer_name) layer.set_registry(REGISTRY_NAME + "-source-layer-id", source_layer_id) shadow_layer_id = layer.get_id() layer.set_registry("overlay-color", overlay_color) layer.set_opacity(chosen_opacity) image.do_end()
def create_shadow_layer(): global shadow_layer_id image.do_begin() if shadow_layer_id != None: layer.select_id(shadow_layer_id) layer.remove() layer.select_id(source_layer_id) layer.duplicate() layer.set_name(FRIENDLY_NAME + " - " + source_layer_name) layer.set_registry("shadow-source-layer-id", source_layer_id) shadow_layer_id = layer.get_id() shadow_index = image.get_layer_index() image.move_layer_index(shadow_index, shadow_index - 1) filters.filter_function(red=overlay_color.red / 255, green=overlay_color.green / 255, blue=overlay_color.blue / 255, gamma_correction=False) layer.set_registry("overlay-color", overlay_color) layer.set_opacity(chosen_opacity) image.do_end()
def create_stroke_layer(): global stroke_layer_id image.do_begin() if stroke_layer_id != None: layer.select_id(stroke_layer_id) stroke_index = image.get_layer_index() selection.select_all() selection.delete() layer.select_id(source_layer_id) layer.duplicate() image.move_layer_index(image.get_layer_index(), stroke_index+1) layer.merge_over() else: layer.select_id(source_layer_id) layer.duplicate() layer.set_name("Stroke of "+source_layer_name) layer.set_registry("stroke-source-layer-id", source_layer_id) stroke_layer_id = layer.get_id() stroke_index = image.get_layer_index() image.move_layer_index(stroke_index, stroke_index-1) image.do_end()
"name": "Hue", "channel": "H", "hue": "hue", "saturation": "1", "lightness": "0.5", "alpha": "255", "blend": layer.BLEND_DRAW }) channels_id = [] for ch in channels: layer.select_id(layer_id) layer.duplicate() filters.filter_function(hue=ch["hue"], saturation=ch["saturation"], lightness=ch["lightness"], alpha=ch["alpha"], gamma_correction=False) layer.set_name(ch["name"] + " channel") layer.set_opacity(layer_opacity) if ch["channel"] != channels[-1]: layer.set_blend_op(ch["blend"]) layer.set_registry("split-channel", ch["channel"]) layer.set_registry("split-source-id", layer_id) channels_id.append(layer.get_id()) layer.select_id(layer_id) layer.set_registry("split-channels-id", channels_id) layer.set_visible(False) image.do_end()
#channels.append({"name": "Black", "channel": "K", "hue":"0", "saturation": "0", "lightness": "max(max(red,green),blue)", "alpha": "255"}) channels_id = [] for ch in channels: layer.select_id(layer_id) layer.duplicate() filters.filter_function(red=ch.get("red"), green=ch.get("green"), blue=ch.get("blue"), hue=ch.get("hue"), saturation=ch.get("saturation"), lightness=ch.get("lightness"), alpha=ch["alpha"], gamma_correction=False, corrected_hue=False) layer.set_name(translation[ch["name"]]) layer.set_opacity(layer_opacity) if ch["channel"] == "A": layer.set_blend_op(layer.BLEND_MASK) layer.set_registry("split-channel", ch["channel"]) layer.set_registry("split-source-id", layer_id) if ch["channel"] == "K": black_id = layer.get_id() layer.duplicate() layer.set_blend_op(layer.BLEND_DIVIDE) black_div_id = layer.get_id() layer.select_id(layer_id) layer.duplicate() copy_index = image.get_layer_index() image.move_layer_index(copy_index, copy_index + 1) image.select_layer_index(copy_index + 2)
if temp_name is None: dialog.show_message("Failed to retrieve layer") exit() channels[ch] = Image.open(temp_name).getchannel(ch) merged = Image.merge( "RGBA", [channels["R"], channels["G"], channels["B"], channels["A"]]) merged.save(temp_name, "PNG") for ch_id in channels_id: if image.contains_layer_id(ch_id): layer.select_id(ch_id) layer.remove() layer.add_from_file(temp_name) layer.set_name("Merged channels") new_layer_id = layer.get_id() new_layer_index = image.get_layer_index() if image.contains_layer_id(layer_id): layer.select_id(layer_id) layer_index = image.get_layer_index() layer_name = layer.get_name() layer_opacity = layer.get_opacity() image.move_layer_index(new_layer_index, layer_index + 1) layer.select_id(layer_id) layer.remove() layer.select_id(new_layer_id) layer.set_name(layer_name) layer.set_opacity(layer_opacity)
# Mask > Mask from alpha channel # (fr) Masque > Masque depuis canal alpha # (es) Máscara > Máscara desde canal alpha # (de) Maske > Maske vom Alphakanal from lazpaint import image, layer, filters, selection, dialog translation = dialog.select_translation(en={"Mask": "Mask"}, fr={"Mask": "Masque"}, es={"Mask": "Máscara"}, de={"Mask": "Maske"}) image.do_begin() selection.deselect() layer.duplicate() layer.set_name(translation["Mask"]) filters.filter_function(red="alpha", green="alpha", blue="alpha", alpha=255, gamma_correction=False) layer.set_blend_op(layer.BLEND_MASK) image.do_end()
channels_id = layer.get_registry("split-channels-id") new_layer_index = image.get_layer_index() + 1 if channels_id is None: dialog.show_message("Current layer is not split") exit() layer.new("Merged channels") image.move_layer_index(image.get_layer_index(), new_layer_index) for cur_layer_id in reversed(channels_id): layer.select_id(cur_layer_id) image.move_layer_index(image.get_layer_index(), new_layer_index + 1) layer.merge_over() new_layer_id = layer.get_id() if image.contains_layer_id(layer_id): layer.select_id(layer_id) layer_index = image.get_layer_index() layer_name = layer.get_name() layer_opacity = layer.get_opacity() image.move_layer_index(new_layer_index, layer_index + 1) layer.select_id(layer_id) layer.remove() layer.select_id(new_layer_id) layer.set_name(layer_name) layer.set_opacity(layer_opacity) image.do_end()
b = Image.merge("RGB", [zero, zero, im.getchannel("B")]) image.do_begin() layer.select_id(layer_id) layer.set_visible(False) channels = [(r, "Red", "R"), (g, "Green", "G"), (b, "Blue", "B")] if layer_transparent: a = im.getchannel("A") channels.insert(0, (a, "Alpha", "A")) channels_id = [] for ch in channels: ch[0].save(temp_name, "BMP") layer.add_from_file(temp_name) layer.set_name(ch[1] + " channel") layer.set_opacity(layer_opacity) if ch[2] == "A": layer.set_blend_op(layer.BLEND_MASK) elif ch[2] != channels[-1][2]: layer.set_blend_op(layer.BLEND_LIGHTEN) layer.set_registry("split-channel", ch[2]) layer.set_registry("split-source-id", layer_id) channels_id.append(layer.get_id()) image.move_layer_index(image.get_layer_index(), layer_index+1) layer.select_id(layer_id) layer.set_registry("split-channels-id", channels_id) image.do_end()
# Mask > Mask from alpha channel from lazpaint import image, layer, filters, selection image.do_begin() selection.deselect() layer.duplicate() layer.set_name("Mask") filters.filter_function(red="alpha", green="alpha", blue="alpha", alpha=255, gamma_correction=False) layer.set_blend_op(layer.BLEND_MASK) image.do_end()
# Render > Lava # (fr) Rendu > Lave # (es) Renderizar > Lava # (de) Rendering > Lava from lazpaint import image, layer, filters, colors, dialog image.do_begin() layer.new() filters.run(filters.RENDER_WOOD) layer.new() filters.run(filters.RENDER_WATER) layer.set_blend_op(layer.BLEND_LINEAR_SUBTRACT) layer.merge_over() layer.set_name(dialog.get_script_name()) image.do_end()
# Render > Lava from lazpaint import image, layer, filters, colors image.do_begin() layer.new() filters.run(filters.RENDER_WOOD) layer.new() filters.run(filters.RENDER_WATER) layer.set_blend_op(layer.BLEND_LINEAR_SUBTRACT) layer.merge_over() layer.set_name("Lava") image.do_end()