Edit the watermark in place, rotate the frame photo, place a custom watermark

Watermark editing no longer covers the photo: the preview letterboxes the
image inside its fit rect while the deck is open, and the idle hint is gone.

The FRAME tab can rotate a library photo 90 degrees clockwise. Rotation
swaps the pixel dimensions instead of the frame, so the polaroid/wall window
keeps its aspect and every consumer (cover crop, watermark area, export) picks
up the new orientation from width()/height() with no extra layout branch. The
rotate surface is CPU-backed on purpose - a GPU snapshot loses its pixels
before the next frame and renders the photo black.

Custom watermark text can now be dragged anywhere on the photo, double-tapped
to re-edit, and is only baked into the file once ACCEPT is pressed; the export
engine takes the same position. It also gained COLOR/SIZE/FONT chips, with the
font list read from the OS via Skia's FontMgr so any installed family can be
used.
This commit is contained in:
2026-09-10 09:26:55 +07:00
parent ff06045e02
commit 3a8b110c1b
6 changed files with 347 additions and 42 deletions
+6
View File
@@ -87,4 +87,10 @@ export interface CustomWatermark {
text: string;
x: number;
y: number;
// Styling set by the COLOR / SIZE / FONT chips. Absent on marks saved before
// those controls existed — the renderers then fall back to amber, 1x and the
// bundled Cousine face, i.e. exactly the previous look.
color?: string;
size?: number; // multiplier on the base 3.2%-of-width text size
font?: string | null; // OS font family; null/absent = bundled font
}