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).