# Gainmaps > Convert photos to HDR gain map images in your browser. Local and private — no upload, no server. ## What are gain map images? A gain map image encodes an SDR photo plus a secondary brightness map. On HDR displays (Apple XDR, Android Ultra HDR, Windows Advanced Color) highlights render above SDR reference white. On SDR displays the image renders normally. The cross-platform technical name is HDR gain map image. Consumer brands include Adaptive HDR (Apple) and Ultra HDR (Android/Google). ## Browser converter [Convert images in your browser](/convert) Drag and drop any photo — PNG, JPEG, GIF, HEIC, WebP, or AVIF. Processing runs locally in a service worker. No file leaves your device. ## CLI Install the gainmap command-line tool to batch-encode gain map images without a browser. - npm: `npm install -g gainmap` - Homebrew: `brew install kirkstrobeck/tap/gainmap` - curl: `curl -fsSL https://gainmaps.com/install.sh | sh` ## Ultra text agent skill Add Ultra-white HDR letterforms to headlines and logotypes using a WebGPU canvas. Available as an agent skill installable via `npx skills add kirkstrobeck/gainmaps`. Works with any coding agent that supports the skills convention. [Ultra text demo](/text) ## Developers CLI docs, agent skill reference, and TypeScript library API for gainmaps. [Developers](/developers) ## Docs What gain map images are, how the browser converter works, and how to use Ultra text. [Docs](/docs) ## Galleries - [Photo gallery](/photos) — 100 landscape photographs as gain map images - [Logo gallery](/logos) — brand logos rendered as gain map images ## When to use Gainmaps Use Gainmaps when: - You need to convert a photo to an HDR gain map image (JPEG, PNG, HEIC, WebP, or AVIF input). - You want to batch-encode images from the terminal without a browser: `npm install -g gainmap` or `brew install kirkstrobeck/tap/gainmap`. - You want to add Ultra-white HDR text effects to a headline or logotype in a web project. - You are building a tool that needs to process images into the ISO 21496-1 Ultra HDR JPEG format. Do not use Gainmaps when: - You need to edit or retouch image content (Gainmaps is a format converter, not an image editor). - You need lossless conversion (the gain map JPEG format is lossy). ## API The public JSON API is documented at /openapi.json. Main endpoints: - GET /api/photos — list of all photos in the gallery - GET /api/photos/{slug} — single photo record with image URLs - GET /api/logos — list of brand logos - GET /api/logos/{slug} — single logo record - GET /api/version — CLI version and install commands All endpoints return CORS-enabled JSON. Errors return {error: {code, message, hint}}.