Skip to content

[FEATURE] Export current preview frame as PNG (thumbnail) #720

@Palakchoithani

Description

@Palakchoithani

Feature description
Add an “Export frame” action (button) that captures the current preview frame and downloads it as a PNG matching the preview resolution and active transforms (crop/rotation/scale).

Problem this solves
Users frequently need a thumbnail or single-frame image from a video. Currently they must export a full video or use external tools/screenshots, which is slow and error-prone—especially when the preview is rotated/cropped.

Proposed solution

UI: add an Export frame button in the preview toolbar (and optionally in the Export modal). Consider a keyboard shortcut (e.g., T) and a right‑click “Save frame” context action.
Implementation:
Render the current video frame to an offscreen at the preview’s output resolution.
Apply the same transforms used by the preview (crop rectangle, rotation, scale, fit/fill) when drawing to canvas.
Call canvas.toBlob() with image/png and prompt a download with a sensible filename (e.g., reframe-frame-YYYYMMDD-HHMMSS.png).
Preserve metadata where feasible (dimensions, rotation).
Add a small visual confirmation (toast) on success and graceful error handling.
Tests: manual test case for rotated and cropped frames; unit test for drawing pipeline if logic is extracted into a helper.
Alternatives considered

Suggest users take a screenshot — inconsistent dimensions and not reproducible.
Add frame-export as part of full export flow — heavier and slower than a single-frame operation.
Acceptance Criteria

Clicking the button downloads a PNG that matches the preview’s current frame and applied transforms.
Works for rotated/cropped frames and with different preview resolutions.
Includes a brief toast confirmation or similar UI feedback on success/failure.
Additional context

Implementation can reuse existing preview/canvas utilities (see src/.../VideoPreview and any canvas helpers).
Labels: type:feature, area:export, level 3.

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions