Răsfoiți Sursa

script: layer info

johann 6 ani în urmă
părinte
comite
b545b28ece
3 a modificat fișierele cu 74 adăugiri și 1 ștergeri
  1. 16 0
      lazpaint/image/uimageaction.pas
  2. 3 1
      scripts/layer_shadow.py
  3. 55 0
      scripts/lazpaint/layer.py

+ 16 - 0
lazpaint/image/uimageaction.pas

@@ -155,7 +155,15 @@ begin
   Scripting.RegisterScriptFunction('LayerHorizontalFlip',@GenericScriptFunction,ARegister);
   Scripting.RegisterScriptFunction('LayerHorizontalFlip',@GenericScriptFunction,ARegister);
   Scripting.RegisterScriptFunction('LayerVerticalFlip',@GenericScriptFunction,ARegister);
   Scripting.RegisterScriptFunction('LayerVerticalFlip',@GenericScriptFunction,ARegister);
   Scripting.RegisterScriptFunction('LayerGetId',@GenericScriptFunction,ARegister);
   Scripting.RegisterScriptFunction('LayerGetId',@GenericScriptFunction,ARegister);
+  Scripting.RegisterScriptFunction('LayerGetName',@GenericScriptFunction,ARegister);
+  Scripting.RegisterScriptFunction('LayerGetOpacity',@GenericScriptFunction,ARegister);
+  Scripting.RegisterScriptFunction('LayerGetBlendOp',@GenericScriptFunction,ARegister);
+  Scripting.RegisterScriptFunction('LayerGetVisible',@GenericScriptFunction,ARegister);
   Scripting.RegisterScriptFunction('LayerSelectId',@ScriptLayerSelectId,ARegister);
   Scripting.RegisterScriptFunction('LayerSelectId',@ScriptLayerSelectId,ARegister);
+  Scripting.RegisterScriptFunction('LayerSetName',@GenericScriptFunction,ARegister);
+  Scripting.RegisterScriptFunction('LayerSetOpacity',@GenericScriptFunction,ARegister);
+  Scripting.RegisterScriptFunction('LayerSetBlendOp',@GenericScriptFunction,ARegister);
+  Scripting.RegisterScriptFunction('LayerSetVisible',@GenericScriptFunction,ARegister);
   Scripting.RegisterScriptFunction('LayerAddNew',@ScriptLayerAddNew,ARegister);
   Scripting.RegisterScriptFunction('LayerAddNew',@ScriptLayerAddNew,ARegister);
   Scripting.RegisterScriptFunction('LayerFromFile',@ScriptLayerFromFile,ARegister);
   Scripting.RegisterScriptFunction('LayerFromFile',@ScriptLayerFromFile,ARegister);
   Scripting.RegisterScriptFunction('LayerDuplicate',@ScriptLayerDuplicate,ARegister);
   Scripting.RegisterScriptFunction('LayerDuplicate',@ScriptLayerDuplicate,ARegister);
@@ -223,6 +231,14 @@ begin
   if f = 'LayerHorizontalFlip' then HorizontalFlip(foCurrentLayer) else
   if f = 'LayerHorizontalFlip' then HorizontalFlip(foCurrentLayer) else
   if f = 'LayerVerticalFlip' then VerticalFlip(foCurrentLayer) else
   if f = 'LayerVerticalFlip' then VerticalFlip(foCurrentLayer) else
   if f = 'LayerGetId' then AVars.Integers['Result'] := Image.LayerId[Image.CurrentLayerIndex] else
   if f = 'LayerGetId' then AVars.Integers['Result'] := Image.LayerId[Image.CurrentLayerIndex] else
+  if f = 'LayerGetName' then AVars.Strings['Result'] := Image.LayerName[Image.CurrentLayerIndex] else
+  if f = 'LayerGetOpacity' then AVars.Integers['Result'] := Image.LayerOpacity[Image.CurrentLayerIndex] else
+  if f = 'LayerGetBlendOp' then AVars.Strings['Result'] := BlendOperationStr[Image.BlendOperation[Image.CurrentLayerIndex]] else
+  if f = 'LayerGetVisible' then AVars.Booleans['Result'] := Image.LayerVisible[Image.CurrentLayerIndex] else
+  if f = 'LayerSetName' then Image.LayerName[Image.CurrentLayerIndex] := AVars.Strings['Name'] else
+  if f = 'LayerSetOpacity' then Image.LayerOpacity[Image.CurrentLayerIndex] := AVars.Integers['Opacity'] else
+  if f = 'LayerSetBlendOp' then Image.BlendOperation[Image.CurrentLayerIndex] := StrToBlendOperation(AVars.Strings['BlendOp']) else
+  if f = 'LayerSetVisible' then Image.LayerVisible[Image.CurrentLayerIndex] := AVars.Booleans['Visible'] else
   if f = 'LayerRasterize' then RasterizeLayer else
   if f = 'LayerRasterize' then RasterizeLayer else
   if f = 'LayerMergeOver' then MergeLayerOver else
   if f = 'LayerMergeOver' then MergeLayerOver else
   if f = 'LayerRemoveCurrent' then begin if not RemoveLayer then result := srException end else
   if f = 'LayerRemoveCurrent' then begin if not RemoveLayer then result := srException end else

+ 3 - 1
scripts/layer_shadow.py

@@ -1,8 +1,10 @@
-from lazpaint import colors, image, layer, filters
+from lazpaint import colors, image, layer, filters, dialog
 
 
 layer.duplicate()
 layer.duplicate()
 shadow_index = image.get_layer_index()
 shadow_index = image.get_layer_index()
 image.move_layer_index(shadow_index, shadow_index-1)
 image.move_layer_index(shadow_index, shadow_index-1)
 colors.lightness(shift=-1)
 colors.lightness(shift=-1)
 filters.blur(radius=10)
 filters.blur(radius=10)
+opacity = layer.get_opacity() 
+layer.set_opacity(opacity*2/3)
 
 

+ 55 - 0
scripts/lazpaint/layer.py

@@ -9,12 +9,67 @@ DM_SET = "dmSet"
 DM_SET_EXCEPT_TRANSPARENT = "dmSetExceptTransparent"
 DM_SET_EXCEPT_TRANSPARENT = "dmSetExceptTransparent"
 DM_XOR = "dmXor"
 DM_XOR = "dmXor"
 
 
+BLEND_DRAW = 'Transparent'
+BLEND_LINEAR = 'LinearBlend'
+BLEND_LIGHTEN = 'Lighten'
+BLEND_SCREEN = 'Screen'
+BLEND_ADD = 'Additive'
+BLEND_LINEAR_ADD = 'LinearAdd'
+BLEND_COLOR_DODGE = 'ColorDodge'
+BLEND_DIVIDE = 'Divide'
+BLEND_NICE_GLOW = 'NiceGlow'
+BLEND_SOFT_LIGHT = 'SoftLight'
+BLEND_HARD_LIGHT = 'HardLight'
+BLEND_GLOW = 'Glow'
+BLEND_REFLECT = 'Reflect'
+BLEND_OVERLAY = 'Overlay'
+BLEND_DARK_OVERLAY = 'DarkOverlay'
+BLEND_DARKEN = 'Darken'
+BLEND_MULTIPLY = 'Multiply'
+BLEND_COLOR_BURN = 'ColorBurn'
+BLEND_DIFFERENCE = 'Difference'
+BLEND_LINEAR_DIFFERENCE = 'LinearDifference'
+BLEND_EXCLUSION = 'Exclusion'
+BLEND_LINEAR_EXCLUSION = 'LinearExclusion'
+BLEND_SUBTRACT = 'Subtract'
+BLEND_LINEAR_SUBTRACT = 'LinearSubtract'
+BLEND_SUBTRACT_INVERSE = 'SubtractInverse'
+BLEND_LINEAR_SUBTRACT_INVERSE = 'LinearSubtractInverse'
+BLEND_NEGATION = 'Negation'
+BLEND_LINEAR_NEGATION = 'LinearNegation'
+BLEND_XOR = 'Xor'
+BLEND_SVG_SOFT_LIGHT = 'SvgSoftLight'
+
 def get_id():
 def get_id():
   return command.send("LayerGetId?")
   return command.send("LayerGetId?")
 
 
+def get_name():
+  return command.send("LayerGetName?")
+
+def get_opacity():
+  return command.send("LayerGetOpacity?")
+
+def get_blend_op():
+  return command.send("LayerGetBlendOp?")
+
+def get_visible():
+  return command.send("LayerGetVisible?")
+
 def select_id(id):
 def select_id(id):
   command.send("LayerSelectId", Id=id)
   command.send("LayerSelectId", Id=id)
 
 
+def set_name(name):
+  return command.send("LayerSetName", Name=name)
+
+def set_opacity(opacity):
+  return command.send("LayerSetOpacity", Opacity=opacity)
+
+def set_blend_op(blend_op):
+  return command.send("LayerGetBlendOp", BlendOp=blend_op)
+
+def set_visible(visible):
+  return command.send("LayerGetVisible", Visible=visible)
+
 def new():
 def new():
   return command.send("LayerAddNew?")
   return command.send("LayerAddNew?")