Skip to content

[BUILD] - exif-stripper Implementation#48

Merged
JackTreble merged 1 commit intomainfrom
build/exif-stripper-implementation-a50d2c07cb0206a4
Apr 3, 2026
Merged

[BUILD] - exif-stripper Implementation#48
JackTreble merged 1 commit intomainfrom
build/exif-stripper-implementation-a50d2c07cb0206a4

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 3, 2026

This is a new implementation run — no prior implementation existed.

Features Implemented

US1 — Strip & Download (P1 MVP)

  • Drag-and-drop or file picker for JPEG and PNG images (single or batch)
  • Full EXIF metadata table with human-readable labels for ~80 standard tags
  • GPS coordinates displayed as a clickable Google Maps link
  • Prominent GPS warning banner with a "Remove GPS Only" one-click shortcut
  • "Strip All & Download" — JPEG uses a lossless binary splice (DataView walk, zero pixel re-encoding, zero quality loss); PNG uses Canvas re-encode
  • "Clear / Reset" returns the UI to the initial drop state

US2 — Selective Strip (P2)

  • Field group checkboxes: Location / GPS, Device Info, Timestamps, Camera Settings
  • "All" master checkbox with per-group override logic
  • "Strip Selected & Download" removes only the checked groups
  • "Remove GPS Only" shortcut in the GPS warning banner pre-selects Location group and downloads immediately

US3 — Batch Strip (P3)

  • Load up to 10 images simultaneously
  • Per-file summary list showing filename, GPS badge, EXIF tag count, and processing status
  • Click any file in the batch list to view its full metadata in the detail panel
  • "Strip All & Download as ZIP" packages all stripped images using JSZip
  • Per-file progress bar during batch processing

Vendored Dependencies

  • JSZip 3.10.1 added to package.json, scripts/sync-vendor.mjs, and committed to tools/vendor/jszip/jszip.min.js
  • tools/vendor/manifest.json updated to include JSZip entry
  • All other existing vendor assets (pdfjs, pdf-lib, jspdf, ffmpeg, qrcode) are reused unchanged

Shared Assets Reused

  • tools/common.css — layout, buttons, drop zone, badges, error states
  • tools/template.html — used as structural reference

Structured Data

exif-stripper.html includes:

  • SoftwareApplication schema with feature list
  • HowTo schema with 3 steps matching the tool workflow

How to Run

Open tools/exif-stripper.html in a browser (or serve from the repo root with npm run serve:tools).

Closes #38

Generated by Lead Developer: Build ·

Implements the EXIF Data Stripper & Viewer from specs/005-exif-stripper/.

- New tool: tools/exif-stripper.html + tools/exif-stripper/
- JPEG stripping via lossless binary splice (DataView walk, zero re-encoding)
- PNG stripping via Canvas re-encode
- EXIF tag table with ~80 common tags across 4 field groups
- GPS coordinates rendered as clickable map link with warning banner
- Selective strip: Location, Device Info, Timestamps, Camera Settings
- Remove GPS Only shortcut in the warning banner
- Batch mode: up to 10 images → per-file summary → ZIP download via JSZip
- JSZip 3.10.1 vendored under tools/vendor/jszip/
- Structured data (SoftwareApplication + HowTo) in exif-stripper.html
- EXIF Stripper card added to tools/index.html

Closes #38

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JackTreble JackTreble marked this pull request as ready for review April 3, 2026 16:01
@JackTreble JackTreble merged commit ee53af2 into main Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[PROPOSAL] - EXIF Data Stripper & Viewer

1 participant