zemion 79d223c347
Verify / verify (push) Canceled after 0s
Release Image Tools 0.2.0
2026-09-02 07:56:38 +02:00
2026-09-02 07:56:38 +02:00
2026-09-01 02:47:11 +02:00
2026-09-02 07:56:38 +02:00
2026-09-01 02:47:11 +02:00
2026-09-02 07:56:38 +02:00
2026-09-02 07:56:38 +02:00
2026-09-01 02:47:11 +02:00
2026-09-01 02:47:11 +02:00
2026-09-02 07:56:38 +02:00
2026-09-01 02:47:11 +02:00
2026-09-01 02:47:11 +02:00
2026-09-01 02:47:11 +02:00
2026-09-01 02:47:11 +02:00
2026-09-02 07:56:38 +02:00
2026-09-02 07:56:38 +02:00
2026-09-02 07:56:38 +02:00
2026-09-02 07:56:38 +02:00
2026-09-01 02:47:11 +02:00
2026-09-02 07:56:38 +02:00
2026-09-01 02:47:11 +02:00
2026-09-01 02:47:11 +02:00
2026-09-01 02:47:11 +02:00
2026-09-01 02:47:11 +02:00

Image Tools

Image Tools is a standalone, local-first raster editor for the add·ideas Toolbox. It checks and processes selected files in the browser; image contents are not uploaded.

Version 0.1 scope

  • Open static JPEG, PNG and WebP images.
  • Inspect signatures, dimensions, animation, alpha, EXIF orientation and common metadata/profile markers before decode.
  • Refuse recognized animated or multi-picture input instead of silently discarding frames.
  • Crop with numeric controls, centered aspect presets and a pointer/keyboard-adjustable overlay; zoom source and result together from 25400% without changing export pixels.
  • Rotate in quarter turns and flip horizontally or vertically.
  • Resize by fit, center-cropped fill or exact dimensions.
  • Preview source and result side by side while keeping the last completed preview visible during updates.
  • Export PNG, JPEG or WebP with an explicit quality/background policy.
  • Save/load a strictly validated, versioned JSON recipe containing transform, output and metadata/colour policy.
  • Apply one recipe to a bounded queue; download results individually or build one collision-free ZIP containing images, per-image JSON reports and a batch manifest. ZIP assembly has its own 128 MiB input / 160 MiB output budget and is cancellable while reading or compressing.

Inputs are bounded before browser decoding: 20 files, 256 MiB per source, 512 MiB per queue, 32,768 pixels per edge, 40 megapixels, and a 512 MiB estimated working-memory budget. Image processing runs through the shared cancellable disposable-worker protocol when OffscreenCanvas is available, with typed progress, a main-thread capability fallback and a 120-second hard deadline.

Honest format and colour policy

Version 0.1 is intentionally static-only. GIF, AVIF, HEIC, JPEG XL, TIFF, BMP, animated PNG/WebP and recognized multi-picture JPEG are not flattened or partially exported. The UI probes the exact native encoder MIME response and disables formats that the current browser cannot produce; header support is never presented as proof that decoding will succeed.

Exports are browser-native pixel re-encodes. Source EXIF, XMP, ICC, comments, thumbnails and trailing data are not intentionally copied, but Image Tools is not a privacy verifier. Browser canvas uses an 8-bit working representation and does not preserve arbitrary ICC profiles, HDR precision, original compression, or byte identity. JPEG is lossy; PNG is lossless only relative to the canvas pixels. Browser encoder output can vary.

See Architecture, Privacy and security, and Accessibility.

Development

Requires Node.js 22 and npm 11.

npm ci
npm run check
npm run test:browser

The tests include generated JPEG/PNG/WebP header fixtures, malformed/over-limit cases, geometry/report unit tests, and full local upload/worker/export flows in Chromium and Firefox.

Release

npm run release:artifact creates release/image-tools-0.2.0.zip and its checksum sidecar after all checks pass.

Licence

GPL-3.0-or-later. Runtime dependencies retain their licences; see THIRD_PARTY_NOTICES.md.

S
Description
Local-first raster image editing and batch processing for add·ideas Toolbox.
Readme GPL-3.0
248 KiB
2026-09-02 07:56:38 +02:00
Languages
TypeScript 79.7%
CSS 12.2%
JavaScript 7.8%
HTML 0.3%