Frame Processor

Overview

The Frame Processor (frame) draws a border (“frame”) around an image, or creates a standalone framed canvas when no source is provided.


Example Usage

- processor:
    processor: "frame"
    inputs:
      source: "mem/subject.png"
    params:
      composite: true
      size: 10
      color: "#FFFFFF"
      padding: 5
      inner_radius: 0
      outer_radius: 0
      mode: "fit" # or "expand" or "overlay"
    outputs:
      target: "mem/framed_subject.png"
    assigns:
      content_top: "frame_top"
      content_left: "frame_left"
      content_bottom: "frame_bottom"
      content_right: "frame_right"
      content_width: "frame_content_width"
      content_height: "frame_content_height"

Inputs

Key Required Description
source Yes if composite=true,
or to supply dims
Path of image to frame (optional if standalone canvas).

Params

Key Type Required Default Description
composite boolean true If true, overlay frame on source; if false, generate standalone canvas (can use source size).
width int Yes if no source Canvas width (standalone mode only).
height int Yes if no source Canvas height (standalone mode only).
background str "transparent" Fill color for new canvas; also fills outer rounded-corner areas when outer_radius > 0. Ignored when compositing.
size int Yes Frame thickness in pixels.
color str Yes Frame color (#RRGGBB, rgba(), or named color).
padding int 0 Gap between image/canvas edge and inner edge of frame.
inner_radius int 0 Corner radius (px) on inner edge; clamped to [0 .. canvas_short_side/2] and forced ≤ outer_radius.
outer_radius int 0 Corner radius (px) on outer edge; clamped to [0 .. canvas_short_side/2]; outer corners are filled with background.
mode enum["fit","expand","overlay"] "overlay" "fit": scale source to fit inner frame bounds;
"expand": enlarge canvas for source+frame;
"overlay": draw frame without resizing.

Outputs

Key Required Description
target Yes Path where the framed image is written.

Assigns

If an assigns: block is present, the processor will populate:

Variable Description
content_top Y-coordinate of the inner rectangle’s top edge (px from canvas origin).
content_right X-coordinate of the inner rectangle’s right edge.
content_bottom Y-coordinate of the inner rectangle’s bottom edge.
content_left X-coordinate of the inner rectangle’s left edge.
content_width Width of the interior area (content_right - content_left).
content_height Height of the interior area (content_bottom - content_top).