web: mirror the frame with H-FLIP and V-FLIP, and stamp a typed place

ROTATE gains the two mirrors: H-FLIP and V-FLIP toggle one at a time and
stay on through the quarter turns and STRAIGHTEN, which makes them compose
with every rotation the strip already offers. ROTATE's own RESET levels the
whole frame, mirrors included.

The flip itself lands last, in screen space, so a mirrored photo is what the
eye sees rather than what the sensor saw; the pixels are copied axis-aligned,
so there is nothing to resample. Session state carries the two flags, so a
reopened photo comes back mirrored.

Also fixes the stamp: a typed PLACE NAME with no GPS fix now prints on its
own (latitude/longitude ride in as NaN), instead of the whole stamp and its
box being skipped for want of coordinates.
This commit is contained in:
2026-09-25 08:46:27 +07:00
parent 9d7a5beec2
commit c70edce8c1
5 changed files with 185 additions and 27 deletions
+3
View File
@@ -22,6 +22,9 @@ export interface StudioState {
rotation?: 0 | 90 | 180 | 270;
// FRAME's STRAIGHTEN: degrees off the quarter turn, -180..180.
straighten?: number;
// FRAME's two mirrors. Absent in older sessions -> no flip.
flipH?: boolean;
flipV?: boolean;
gps?: GPSInfo | null;
gpsManual?: { lat: string; lng: string };
place?: string;