Launch OpenGPEX

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 (50+ formats) libraw-wasm in Worker
Vector SVG, EPS resvg-wasm / Ghostscript in Worker

Export Formats

Format Precision Technology
JPEG, PNG, WebP, BMP 8-bit Browser-native encode
AVIF 8-bit wasm-vips (heifsave + libheif/libaom)
PNG 16-bit wasm-vips
TIFF 8/16/32-bit wasm-vips (LZW/ZIP/JPEG compression)
GIF 8-bit animated gifenc in Worker

Metadata Preservation

Data Formats Behavior
ICC Color Profiles JPEG, PNG, TIFF, WebP, HEIC, AVIF Extract on import, inject on export
EXIF JPEG, WebP, TIFF, AVIF Preserved through edit cycle
DPI/Resolution JPEG, PNG, TIFF, BMP Dual-layer: frame-level + per-layer
PNG chunks PNG 9 chunk types (pHYs, iCCP, tEXt, gAMA, etc.)

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/HEIC encode/decode, CMYK→sRGB, 16/32-bit Lazy, on first use
libraw-wasm Camera RAW decoding (50+ formats) 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