Skip to content
About
Browser-side — no upload

About OpenImages

Last updated: 2026-10-01

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 HTMLCanvasElement context. 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-pdf and screenshot-to-pdf.
  • ICO encoding — own src/lib/ico-encoder.ts for the BMP/PNG header chain that Windows requires.
  • Bulk export — own stream-based ZIP writer (src/lib/zip-stream.ts) used by bulk-convert and bulk-resize — no external zip library, no temporary upload.

Images are processed locally. Hosting, consent management and optional Google services receive visit data for their respective purposes. The privacy policy describes those flows and how to exercise your rights.

Format support and known limits

OpenImages does what your browser can do, plus the HEIC polyfill. The honest matrix:

  • Common formats — each tool identifies its input and output formats. Decoding can fail because of the file variant, browser support or resource limits; not every format is offered as output.
  • 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.
  • Browser-dependent input — TIFF, AVIF and JXL require the browser to decode the file variant. These tools do not export TIFF, AVIF or JXL.

Limits depend on dimensions, decoder support, browser memory and each tool’s safeguards. Start with a copy and inspect the output. Large inputs can exceed these limits even on a recent device; capacity and processing time are not guaranteed.

Why it exists

OpenImages aims to handle common image tasks without an account or uploading photos for processing: select a file, apply an operation and inspect the download.

Image operations run locally. Some functions first download a codec or model, and may need the network again if that resource is no longer cached.

How it is funded

OpenImages is free to use without an account. Optional display advertising through Google AdSense and voluntary Buy Me a Coffee contributions are intended to help support maintenance. Advertising availability depends on the provider and applicable consent signals.

Local image processing is separate from the visit data received by hosting and optional services. See the privacy policy for those data flows.

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 (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 for reporting issues or sharing feedback; response times are not guaranteed.

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.

Sponsored