Positioning and Batch Editing

GIF Ops supports positioning text overlays on individual frames and copying settings across multiple frames.

Text Positioning

Each frame stores a text anchor position.

By default, the anchor is the center of the GIF:

X = width / 2
Y = height / 2

You can modify this position using dragging or numeric offsets.

Drag to Position

To move a caption:

  1. Select a frame.
  2. Enter text.
  3. Click or drag on the preview.
  4. Release when the text reaches the desired position.

GIF Ops converts the pointer position into the canvas's internal coordinates.

This allows drag positioning to work even when the preview canvas is visually scaled.

Important Behavior

Dragging sets the text anchor to the pointer position.

It does not require the user to grab the existing text itself; interacting anywhere on the preview can reposition the caption.

X and Y Offsets

The Position controls provide:

  • X
  • Y

Both accept numeric pixel offsets.

Example

X: 0
Y: -40

This moves the text 40 pixels upward relative to its saved anchor.

Another example:

X: 25
Y: 10

This moves the text:

  • 25 pixels right
  • 10 pixels down

How Position Is Calculated

The renderer combines the anchor and offsets:

Final X = Anchor X + Offset X
Final Y = Anchor Y + Offset Y

If the anchor was never set by dragging, the image midpoint is used.

Alignment and Anchoring

Text alignment determines how the text is drawn relative to its anchor.

For example:

Alignment: Center

centers the text around its X coordinate.

Alignment: Left

starts the text at that coordinate.

Alignment: Right

ends the text at that coordinate.

Changing alignment can make the text appear to move even when the anchor is unchanged.


Copy Settings to All Frames

Click:

Copy → All

This copies the complete settings of the selected frame to every frame.

Copied properties include:

  • text
  • font
  • size
  • alignment
  • opacity
  • colors
  • border
  • anchor coordinates
  • offsets

Example

You want the same caption throughout a 30-frame GIF.

  1. Select frame 1.
  2. Enter your caption.
  3. Adjust the styling.
  4. Position it.
  5. Click Copy → All.

The caption settings now apply across the animation.

Batch Apply to a Range

The Project panel includes:

  • Frames: start
  • end
  • Apply current settings to range

Example

Start: 5
End: 15

Click Apply current settings to range.

The selected frame's settings are copied to frames 5 through 15, inclusive.

Range Handling

The implementation:

  1. Reads the start and end values.
  2. Limits them to the available frame count.
  3. Converts them to zero-based indexes internally.
  4. Orders the endpoints if necessary.
  5. Copies settings to every frame in the range.

For example, entering:

Start: 15
End: 5

still applies to frames 5 through 15.

What Batch Apply Copies

Batch Apply copies the entire current frame settings object.

It does not merge only the text or only the color.

Existing settings in the target frames are replaced.

Suggested Editing Workflows

Same Caption Everywhere

Use Copy → All.

Caption Appears Halfway Through

  1. Add text to a selected frame.
  2. Apply it to the desired range.
  3. Leave the remaining frames without text.

Changing Captions

  1. Apply one caption to the first range.
  2. Select another frame and enter a different caption.
  3. Apply the second caption to a different range.

Moving Caption

Apply different anchor positions to successive frames.

This can create a simple stepped text movement.

GIF Ops does not currently include automatic keyframe interpolation or motion tweening.

Important Limitations

  • Batch edits replace complete settings objects.
  • No undo or redo history is implemented.
  • No interpolation between caption positions is provided.
  • There is no separate multi-selection timeline editor.
  • Changing a range does not modify original frame durations.

Best Practices

  • Export JSON settings before large batch changes.
  • Use Copy → All for globally consistent text.
  • Use Apply Range for timed caption sequences.
  • Check transition frames after batch editing.
  • Preview the entire animation before rendering.

Did this page help you?