Exemple #1
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()
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()
Exemple #3
0
# Channels > Split HSL
from lazpaint import image, dialog, layer, filters

# check if it is a channel
if layer.get_registry("split-channel") is not None:
    dialog.show_message("Layer already split")
    exit()

layer_id = layer.get_id()
layer_index = image.get_layer_index()
layer_opacity = layer.get_opacity()
layer_transparent = layer.is_transparent()

# check if it has been split
if layer.get_registry("split-channels-id") is not None:
    for cur_layer_id in image.iterate_layers():
        if layer.get_registry("split-source-id") == layer_id:
            dialog.show_message("Layer already split")
            exit()

image.do_begin()
channels = []
if layer_transparent:
    channels.append({
        "name": "Alpha",
        "channel": "A",
        "hue": "0",
        "saturation": "0",
        "lightness": "alpha",
        "alpha": "255",
        "blend": layer.BLEND_MASK
source_layer_name = layer.get_name()

chosen_radius = layer.get_registry("shadow-radius")
if chosen_radius == None:
    chosen_radius = image.get_registry("shadow-radius")
if chosen_radius == None:
    chosen_radius = 10

chosen_offset = layer.get_registry("shadow-offset")
if chosen_offset == None or len(chosen_offset) != 2:
    chosen_offset = image.get_registry("shadow-offset")
if chosen_offset == None or len(chosen_offset) != 2:
    chosen_offset = (10, 10)

shadow_layer_id = layer.get_registry("shadow-layer-id")
if image.get_layer_index(shadow_layer_id) == None:
    shadow_layer_id = None

if shadow_layer_id is not None:
    layer.select_id(shadow_layer_id)
    chosen_opacity = layer.get_opacity()
    overlay_color = colors.str_to_RGBA(layer.get_registry("overlay-color"))
    layer.select_id(source_layer_id)
else:
    chosen_opacity = layer.get_opacity() * 2 / 3
    overlay_color = None

if overlay_color is None:
    overlay_color = colors.BLACK

Exemple #5
0
############ image processing

MAX_RADIUS = 100
MAX_OPACITY = 255

source_layer_id = layer.get_id()
source_layer_name = layer.get_name()

chosen_radius = layer.get_registry("stroke-radius")
if chosen_radius == None: 
    chosen_radius = image.get_registry("stroke-radius")
if chosen_radius == None:
    chosen_radius = 10

stroke_layer_id = layer.get_registry("stroke-layer-id")
if image.get_layer_index(stroke_layer_id) == None:
    stroke_layer_id = None

if stroke_layer_id is not None:
    layer.select_id(stroke_layer_id)
    chosen_opacity = layer.get_opacity()
    overlay_color = colors.str_to_RGBA(layer.get_registry("overlay-color"))
    layer.select_id(source_layer_id)
else:
    chosen_opacity = layer.get_opacity() 
    overlay_color = None

if overlay_color is None:
  overlay_color = colors.BLACK

def create_stroke_layer():
Exemple #6
0
# Channels > Merge
from lazpaint import image, dialog, layer

channels_id = None
new_layer_index = None
image.do_begin()

if layer.get_registry("split-channel") is not None:
    layer_id = layer.get_registry("split-source-id")
    if image.contains_layer_id(layer_id):
        layer.select_id(layer_id)
        channels_id = layer.get_registry("split-channels-id")
        new_layer_index = image.get_layer_index() + 1
    else:
        channels_id = []
        for cur_layer_id in image.iterate_layers():
            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")
# Split RGB channels (using Pillow)
from lazpaint import image, dialog, layer

try:
    from PIL import Image
except ImportError:
    dialog.show_message("Please install Pillow for Python.")
    exit()

# check if it is a channel
if layer.get_registry("split-channel") is not None:
  dialog.show_message("Layer already split")
  exit()

layer_id = layer.get_id()
layer_index = image.get_layer_index()
layer_opacity = layer.get_opacity()
layer_transparent = layer.is_transparent()

# check if it has been split
if layer.get_registry("split-channels-id") is not None:
  for i in range(1, layer.get_count()):
    image.select_layer_index(i)
    if layer.get_registry("split-source-id") == layer_id:
      dialog.show_message("Layer already split")
      exit()
  layer.select_id(layer_id)

temp_name = image.get_temporary_name()
temp_name = layer.save_as(temp_name)
if temp_name is None: