feat: add OpenEXR as supported image format

pull/28100/head
stackcoder 2026-04-26 19:12:40 +02:00
parent 9263e2f2e1
commit ddf1004b92
6 changed files with 8 additions and 0 deletions

View File

@ -12,6 +12,7 @@ For the full list, refer to the [Immich source code](https://github.com/immich-a
| :---------- | :---------------------------- | :----------------: | :-------------- |
| `AVIF` | `.avif` | :white_check_mark: | |
| `BMP` | `.bmp` | :white_check_mark: | |
| `OpenEXR` | `.exr` | :white_check_mark: | |
| `GIF` | `.gif` | :white_check_mark: | |
| `HEIC` | `.heic` | :white_check_mark: | |
| `HEIF` | `.heif` | :white_check_mark: | |

View File

@ -190,6 +190,7 @@ export const setupBaseMockApiRoutes = async (context: BrowserContext, adminUserI
'.dcr',
'.dng',
'.erf',
'.exr',
'.fff',
'.iiq',
'.k25',

View File

@ -156,6 +156,7 @@ where
'%.srf',
'%.srw',
'%.x3f',
'%.exr',
'%.heic',
'%.heif',
'%.hif',

View File

@ -69,6 +69,7 @@ const validImages = [
'.dcr',
'.dng',
'.erf',
'.exr',
'.fff',
'.gif',
'.heic',

View File

@ -55,6 +55,7 @@ describe('mimeTypes', () => {
{ mimetype: 'image/x-canon-cr3', extension: '.cr3' },
{ mimetype: 'image/x-canon-crw', extension: '.crw' },
{ mimetype: 'image/x-epson-erf', extension: '.erf' },
{ mimetype: 'image/x-exr', extension: '.exr' },
{ mimetype: 'image/x-fuji-raf', extension: '.raf' },
{ mimetype: 'image/x-hasselblad-3fr', extension: '.3fr' },
{ mimetype: 'image/x-hasselblad-fff', extension: '.fff' },
@ -159,6 +160,7 @@ describe('mimeTypes', () => {
for (const img of [
'a.avif',
'a.bmp',
'a.exr',
'a.gif',
'a.heic',
'a.heif',

View File

@ -51,6 +51,7 @@ const webSupportedImage = {
const webUnsupportedImage = {
...raw,
'.exr': ['image/x-exr'],
'.heic': ['image/heic'],
'.heif': ['image/heif'],
'.hif': ['image/hif'],
@ -81,6 +82,7 @@ const extensionOverrides: Record<string, string> = {
const transparentCapableExtensions = new Set([
'.avif',
'.bmp',
'.exr',
'.gif',
'.heic',
'.heif',