# Image Tools Image Tools is a standalone, local-first raster editor for the [add·ideas Toolbox](https://git.add-ideas.de/lotobo/toolbox-portal). 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 and centered aspect presets. - 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. - Apply one recipe to a bounded queue and download each completed result and its JSON operation report. 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 in a disposable module worker when OffscreenCanvas is available, with 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, animated PNG/WebP and recognized multi-picture JPEG are not flattened or partially exported. 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](docs/ARCHITECTURE.md), [Privacy and security](docs/PRIVACY-SECURITY.md), and [Accessibility](docs/ACCESSIBILITY.md). ## Development Requires Node.js 22 and npm 11. ```sh 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.1.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](THIRD_PARTY_NOTICES.md).