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()
Beispiel #2
0
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()
                            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)
        layer.merge_over()
        cmy_id = layer.get_id()
    else:
        channels_id.append(layer.get_id())

if cmy_id is not None:
    channels = []
    channels.append({
        "name": "Cyan",
        "channel": "C",
        "red": "red",
        "green": "1",
        "blue": "1",
        "alpha": "255"
Beispiel #4
0
            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)

image.do_end()
Beispiel #5
0
            cur_source_id = layer.get_registry("split-source-id")
            if cur_source_id == layer_id:
                channels_id.insert(0, cur_layer_id)
                if new_layer_index is None:
                    new_layer_index = image.get_layer_index()
else:
    layer_id = layer.get_id()
    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)
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()
Beispiel #7
0
# Mask > New mask
# (fr) Masque > Nouveau masque
# (es) Máscara > Máscara nueva
# (de) Maske > Neue Maske
from lazpaint import image, layer, tools, colors, 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_index = image.get_layer_index()
layer.new(translation["Mask"])
mask_index = image.get_layer_index()
image.move_layer_index(mask_index, layer_index + 1)
layer.set_blend_op(layer.BLEND_MASK)
tools.set_fore_color(colors.WHITE)
tools.set_back_color(colors.BLACK)
tools.choose(tools.FLOOD_FILL)
tools.mouse((0, 0), [tools.STATE_LEFT])

image.do_end()