Launch OpenGPEX

OpenGPEX 1.x documentation (legacy editor).

v2 Docs

File Formats

OpenGPEX supports 10+ image formats for import and export, with full metadata preservation.


Import Formats

Category Formats Technology
Standard web JPEG, PNG, WebP, AVIF, BMP, GIF Browser-native decode
Professional TIFF (16-bit, CMYK, BigTIFF) wasm-vips in Worker
Camera RAW CR2, NEF, ARW, DNG, and more libraw-wasm in Worker
Vector SVG, EPS resvg-wasm / Ghostscript in Worker

Export Formats

Exports composite the frame at 8-bit precision (unified composite-8bit pipeline; high-bit-depth export returns with the v2 WebGPU engine).

Format Precision Technology
JPEG, PNG, WebP, BMP 8-bit Browser-native encode
AVIF 8-bit @jsquash/avif in Worker (wasm-vips for ICC-embedded AVIF)
TIFF 8-bit wasm-vips (None/LZW/ZIP/JPEG compression, optional BigTIFF)
GIF 8-bit animated gifenc (via the Animated Images drawer)

Metadata Preservation

Data Formats Behavior
ICC Color Profiles JPEG, PNG, TIFF, WebP, AVIF Extract on import, inject on export
EXIF JPEG, WebP, TIFF, AVIF Preserved through edit cycle
DPI/Resolution JPEG, PNG, TIFF, BMP Frame-level document resolution (default 72)
PNG chunks PNG Key chunks preserved/re-injected (pHYs, iCCP/sRGB, tEXt, tIME, iTXt)

Native .gpex Format

The project save format is a binary container bundling:

  • Thumbnail — WebP preview for file listings
  • Manifest — JSON metadata (dimensions, layer count, editor version)
  • Payload — ZIP archive containing serialized state + all image assets (by CAS hash)

Self-contained, offline-capable, and drag-and-droppable.


GIF Animation

Multi-frame GIF files decompose into individual layers on import (linked by sequence ID), and reassemble into animated GIF on export — preserving frame timing and loop metadata.


WASM Modules

All heavy format operations run in Web Workers, never blocking the UI:

Module Purpose Loading
wasm-vips TIFF/AVIF encode/decode, CMYK→sRGB, high-bit-depth decode Lazy, on first use
libraw-wasm Camera RAW decoding (CR2, NEF, ARW, DNG, …) Lazy, on first RAW import
resvg-wasm SVG rasterization Lazy, on first SVG import
gifenc GIF multi-frame encoding Lazy, on first GIF export

Last updated: 2026-07-30