https://github.com/jcayzac/ultrajpeg
Rust crate for encoding and decoding SDR or HDR JPEG images
https://github.com/jcayzac/ultrajpeg
gain-map gainmap gainmaps hdr hdr-image icc jpeg jpeg-decoder jpeg-encoder jpeg-image-compression jpegr rust ultrahdr
Last synced: about 2 months ago
JSON representation
Rust crate for encoding and decoding SDR or HDR JPEG images
- Host: GitHub
- URL: https://github.com/jcayzac/ultrajpeg
- Owner: jcayzac
- License: apache-2.0
- Created: 2026-03-29T11:06:37.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-01T11:07:23.000Z (2 months ago)
- Last Synced: 2026-04-03T01:49:03.742Z (about 2 months ago)
- Topics: gain-map, gainmap, gainmaps, hdr, hdr-image, icc, jpeg, jpeg-decoder, jpeg-encoder, jpeg-image-compression, jpegr, rust, ultrahdr
- Language: Rust
- Homepage:
- Size: 14 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# ultrajpeg
`ultrajpeg` is a Rust library for working with JPEG images.
It provides a native Rust API for encoding and decoding plain JPEG images,
MPF-bundled gain-map JPEGs, ICC/EXIF payloads, UltraHDR XMP, and
ISO 21496-1 metadata.
## Highlights
- plain JPEG encode and decode
- explicit JPEG scan-mode and compression-effort control on encode
- metadata-only inspection without pixel decode
- raw Ultra HDR payload parsing for XMP and ISO 21496-1
- structural inspection for MPF-bundled or concatenated JPEG codestreams
- Ultra HDR gain-map packaging and recovery
- SDR-primary preparation for caller-managed HDR workflows
- bundled Display-P3 ICC helper
- structured primary-image color metadata and Ultra HDR metadata
- synchronous API with internal parallel decode where useful
## Main API
The main public API is at the crate root:
- `inspect`
- `decode`
- `decode_with_options`
- `encode`
- `compute_gain_map`
- `encode_ultra_hdr`
The primary public types include:
- `Image`
- `EncodeOptions`
- `CompressionEffort`
- `PrimaryMetadata`
- `GainMapBundle`
- `DecodedImage`
- `Inspection`
- `UltraHdrMetadata`
- `Encoder`
The docs.rs rustdoc is generated from the user-facing files under `docs/user/`.