About OpenImages
Last updated: 2026-05-26
What this is
OpenImages is a suite of 64 free image tools that run entirely in your browser — converters between every common format, compressors, resizers and croppers, filters, vectorizers, an upscaler, generators for favicons and color palettes, and a few PDF-output tools. No file you load is uploaded to a server. Every decode, transform and encode happens on your device — on the page's main thread or in a Web Worker for the heavy tools (vectorisation, background removal). If the result looks wrong, the bug is on this site, not in a cloud somewhere.
How tools work in your browser
The site is built with Astro, Svelte 5 and Tailwind CSS 4, deployed on Cloudflare Pages. Image work splits into decoding (turning a file into pixels), processing (modifying those pixels), and encoding (writing the result back to a file). Each step uses a specific library or browser API — chosen to be honest about what is native versus what is a polyfill:
- Native decode — PNG, JPG, WebP, GIF, BMP, ICO, AVIF and SVG are decoded by your browser's built-in
HTMLImageElement. AVIF support is wide on Chrome/Edge/Firefox/Safari but specific decoders may differ in HDR or animated-AVIF handling. - HEIC — decoded by heic2any (1.32 MB), lazy-loaded only when you actually open a HEIC tool. The library bundles libheif compiled to JavaScript; the download stays in your browser cache after the first use.
- JXL (JPEG XL) — uses the browser's native decoder. JXL support changes from quarter to quarter (some browsers ship it by default, others put it behind a flag, others are still in progress) so we deliberately do not maintain our own status table here — see caniuse.com/jpegxl for the live picture. When the browser cannot decode JXL, the tool surfaces an explicit "unsupported" error rather than failing silently.
- Canvas API — once an image is decoded, all geometry and pixel operations (crop, rotate, flip, resize, watermark, filter, color adjustment) run on a 2D
HTMLCanvasElementcontext. No WebGL or WASM is involved for these — pure JavaScript Canvas. - Compression — browser-image-compression handles JPG/PNG/WebP target sizing for the compress tools (it wraps Canvas re-encode loops with quality search).
- Upscaling — own Lanczos3 resampler in pure TypeScript (
src/lib/lanczos.ts), separable 2-pass with precomputed weights. No WASM, no external service. - Vectorization (raster → SVG) — VTracer (visioncortex/vtracer, Rust, MIT), compiled to WebAssembly by this project and vendored (~122 KB WASM bundle). Runs in a module Web Worker — zero uploads, no server round-trip. Tracing uses a downsampled copy (max 2048 px longest edge) and is deterministic: same input and preset produce the same SVG. Four tracing presets by intent: Logo, Illustration, Photo (detailed vector painting — more paths, larger file), and B&W (binary tracing). Plus Embed mode: wraps the original raster in an SVG
<image>element (full resolution, alpha preserved per source format) with optional Sobel edge outline via d3-contour. - PDF output — pdf-lib for
image-to-pdfandscreenshot-to-pdf. - ICO encoding — own
src/lib/ico-encoder.tsfor the BMP/PNG header chain that Windows requires. - Bulk export — own stream-based ZIP writer (
src/lib/zip-stream.ts) used bybulk-convertandbulk-resize— no external zip library, no temporary upload.
No third-party trackers run beyond aggregate Google Analytics 4 (with EU/UK consent gated to "denied" by default). Tool inputs never leave your browser, so there is nothing on a server to ask about under GDPR Article 15 — the full data flow is documented in the Privacy Policy.
Format support and known limits
OpenImages does what your browser can do, plus the HEIC polyfill. The honest matrix:
- Always works — PNG, JPG/JPEG, WebP, GIF, BMP, SVG, ICO. Both as input and output across all modern browsers.
- Works with a polyfill — HEIC/HEIF input via heic2any. Output to HEIC is not supported (browsers cannot encode HEIC without a much larger library; if you need HEIC output, the right tool is your phone's native camera or
ffmpeg). - Browser-dependent (JXL) — JXL availability varies by browser and changes over time (default-on in some, behind a flag in others, in progress in others still). For the current picture see caniuse.com/jpegxl. When your browser cannot decode JXL, the tool reports "unsupported" instead of producing wrong pixels.
- Decode only — TIFF and AVIF can usually be opened by modern browsers but encoding back to those formats is not offered (no widely-available browser-side encoder).
Image-size practical limits are imposed by browser memory, not by an arbitrary cap on this site. As a rough guide: single-image tools handle 50–100 megapixels comfortably on a recent laptop; bulk and vectorize tools downsample internally and run on much larger inputs. If a tool crashes on a huge file, the file is the cause — switch to a desktop tool (ImageMagick, GIMP, Photoshop) for that one job.
Why it exists
Most image-tool sites online today follow the same pattern: a slow page filled with intrusive ads, a paywall hiding the actually useful features, a forced signup, and an upload step that puts your photos on someone else's server. Photos often carry EXIF location, device identifiers, and personal context — uploading them to convert a JPG to a PNG is a privacy own-goal that the operator was not willing to keep doing. OpenImages is the result.
The design philosophy: every operation that can technically run client-side must run client-side. For image work that turns out to be almost everything — the browser already ships excellent decoders, the Canvas API is hardware-accelerated on most devices, and the only "we need a server" case (HEIC) is solved by a 1.3 MB polyfill that loads on demand and never again.
How it is funded
OpenImages is free, with no signup, no premium tier and no upsell. The site is funded by display ads (Google AdSense) shown around the tools, and by occasional Buy Me a Coffee tips from people who liked the result and wanted to say thanks.
This means the site is sustainable without harvesting your data, gating tools behind a paywall, or pushing you toward a desktop app. If you find one of the tools genuinely useful and want to support continued development, the Buy Me a Coffee link in the footer is the most direct way.
Who is behind it
OpenImages is built and maintained by Marco B., an independent developer based in Spain. The site is part of a small portfolio of utility web apps (CompoundVision for finance, AllYouNeed for general tools, JSONCraft for developers, OpenImages for image work, OpenPDF for PDFs, PingThat for networking). Each one shares the same private-by-default design.
If you would like to talk to a human about a tool, a bug or a feature you wish existed, the Contact page has a feedback form that lands in the operator's inbox within a few hours during EU working days.
Editorial independence
The advertising network (Google AdSense) does not influence which tools are built or how they work. There are no sponsored articles, no "best of" lists pushing affiliate links, no referral kickbacks for cloud-storage or stock-photo services, and no editorial choices made to favour an advertiser. If a tool exists on the site, it is because it was useful enough to the operator to build and ship it.