File Formats

OpenGPEX supports a wide range of image formats for import and export, with special handling for the native .gpex project format.


Supported Import Formats

Format Extension Notes
JPEG .jpg, .jpeg Most common photo format
PNG .png Lossless with alpha support
WebP .webp Modern lossy/lossless format
AVIF .avif Next-gen compression
GIF .gif First frame extracted
BMP .bmp Uncompressed bitmap
SVG .svg Rasterized on import
HEIC/HEIF .heic, .heif Via WASM decoder (Apple photos)

Export Formats

Format Encoder Quality Range
JPEG Browser native 1-100
PNG Browser native Lossless
WebP Browser native 1-100
AVIF WASM (avif_enc.wasm) 1-100

Native Format: .gpex

The .gpex format is a ZIP archive containing the full project state:

project.gpex (ZIP)
├── manifest.json       # Version, dimensions, metadata
├── state.json          # Serialized EditorState (frames, layers)
├── assets/             # CAS-stored image blobs
│   ├── sha256-abc123.png
│   └── sha256-def456.jpg
└── thumbnails/         # Preview images
    └── preview.webp

Key Features:

  • Self-contained — All assets bundled, no external dependencies
  • Resumable — Full undo history can optionally be included
  • Portable — Standard ZIP, inspectable with any archive tool

EXIF Preservation

When exporting, OpenGPEX preserves original EXIF metadata (camera model, GPS, date) from the source image, unless the user explicitly opts to strip it for privacy.


WASM Encoders

Performance-critical formats use WebAssembly encoders running inside Web Workers:

Encoder Speed vs JS File Size Savings
AVIF (WASM) 10-50× faster 30-50% smaller than JPEG

WASM modules are lazy-loaded — only downloaded when the user first exports in that format.


Next Steps


Last updated: 2026-06-14