Skip to content

✨[Feat] Sprint 14 Image Compressor - #14

Merged
maruson08 merged 6 commits into
v2from
feat/sprint-14-image-compressor
Aug 24, 2026
Merged

maruson08 merged 6 commits into
v2from
feat/sprint-14-image-compressor

Conversation

@maruson08

Copy link
Copy Markdown
Member

Summary

  • add a production Image Compressor for JPEG, PNG, and WebP
  • default to Original format with explicit JPEG, PNG, and WebP output choices
  • apply numeric 50–100% quality to JPEG/WebP while truthfully re-encoding PNG without a fake lossy-quality setting
  • preserve oriented pixel dimensions and established alpha behavior

Compression metrics

  • report original size, result size, byte difference, and signed percentage change per file
  • report aggregate batch totals
  • keep and clearly label outputs that become larger
  • invalidate stale metrics when files or settings change

Batch and architecture

  • process sequentially with shared validation, orientation-aware decode, canvas encoding, safe Unicode naming, ZIP packaging, and save helpers
  • save one image directly or multiple outputs as compressed_images.zip
  • release decoded sources, reset canvases, and avoid retaining output Blobs in UI state across repeated jobs

Privacy, localization, accessibility

  • processing remains browser-local with strict CSP and no upload, analytics, telemetry, CDN, external font, remote module, or runtime network API
  • add English, Korean, Japanese, Spanish, German, and French copy with key/placeholder parity
  • provide labeled keyboard-operable controls, live status/progress, semantic result metrics, and narrow-screen stacking

Validation

  • node tests/run-all.mjs passes, including Compressor, Converter, Resize, all PDF regressions, localization, accessibility/responsive, security, CSP, and network audits
  • git diff --check passes
  • bounded browser QA was attempted, but the known Windows browser bridge ACL failure occurred before rendering; no visual QA claim is made

Deferred

  • target-size search, iterative optimization, resize/crop/filter workflows, metadata tools, new codecs, and server features remain out of scope

PR targets v2. main remains untouched.

@maruson08
maruson08 merged commit e86be0a into v2 Aug 24, 2026
1 check passed
@maruson08
maruson08 deleted the feat/sprint-14-image-compressor branch August 24, 2026 03:01
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.

1 participant