Repository navigation
feat(server): JXL previews from DNG 1.7+ - #17861
Conversation
|
Does this serve JXL previews to browsers? |
Nah, but it can be enabled by simply adding JXL to the See discussions in #9056 (comment) |
There was a problem hiding this comment.
I tried to break up generateImageThumbnails a bit, which was easier now that there's more separation between the decoding and the file saving. Extracting the JXL preview from the sample image seems to work fine and I don't notice any regressions for other assets.
nice touch, looks much neater :) |
* feat(server): JXL previews from RAW * refactor(server): use var name assumedExtractedFormat for clarity * test(server): fix existing media.extract() returning JPEG * chore(openapi): regen * style(server): lint * fix(server): ignore undefined decode orientation * fix(server): correct orientation assignment in media decode options * test(server): unit tests of JXL-encoded DNG * refactor(server): return buffer and format from mediaRepository.extract() * chore(open-api): regen * refactor --------- Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Description
This MR adds support of DNG 1.7+ files with JXL previews.
Specifically from Adobe DNG converter, when "Use Lossy Compression" is enabled, and compatibility is set to DNG 1.7+, both the converted main RAW image and its embedded preview are encoded in JXL, which significantly reduces file size without noticable artifacts.

This does not fix decoding issue of JXL-encoded DNGs in #13029
but mitigates the issue when "Prefer embedded preview" is enabled.
How Has This Been Tested?
Screenshots (if appropriate)
Checklist:
should upload and generate a thumbnail for different file typessrc/services/uses repositories implementations for database calls, filesystem operations, etc.src/repositories/is pretty basic/simple and does not have any immich specific logic (that belongs insrc/services/)