From 395888d7a159634b02540a79511bbb0564066626 Mon Sep 17 00:00:00 2001 From: ayykamp Date: Mon, 27 Jan 2025 01:53:52 +0100 Subject: [PATCH 1/5] chore(server): add support for .jp2 --- server/src/services/asset-media.service.spec.ts | 1 + server/src/utils/mime-types.spec.ts | 1 + server/src/utils/mime-types.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/server/src/services/asset-media.service.spec.ts b/server/src/services/asset-media.service.spec.ts index 9dcfa3cbd9ce5..ab5aabcf788b5 100644 --- a/server/src/services/asset-media.service.spec.ts +++ b/server/src/services/asset-media.service.spec.ts @@ -75,6 +75,7 @@ const validImages = [ '.iiq', '.jpeg', '.jpg', + '.jp2', '.jxl', '.k25', '.kdc', diff --git a/server/src/utils/mime-types.spec.ts b/server/src/utils/mime-types.spec.ts index bf471fc1d537c..68665c6735143 100644 --- a/server/src/utils/mime-types.spec.ts +++ b/server/src/utils/mime-types.spec.ts @@ -25,6 +25,7 @@ describe('mimeTypes', () => { { mimetype: 'image/jpeg', extension: '.jpe' }, { mimetype: 'image/jpeg', extension: '.jpeg' }, { mimetype: 'image/jpeg', extension: '.jpg' }, + { mimetype: 'image/jp2', extension: '.jp2' }, { mimetype: 'image/jxl', extension: '.jxl' }, { mimetype: 'image/k25', extension: '.k25' }, { mimetype: 'image/kdc', extension: '.kdc' }, diff --git a/server/src/utils/mime-types.ts b/server/src/utils/mime-types.ts index 6e1b4f083b170..3f0a5c2938466 100644 --- a/server/src/utils/mime-types.ts +++ b/server/src/utils/mime-types.ts @@ -46,6 +46,7 @@ const image: Record = { '.jpe': ['image/jpeg'], '.jpeg': ['image/jpeg'], '.jpg': ['image/jpeg'], + '.jp2': ['image/jp2'], '.jxl': ['image/jxl'], '.png': ['image/png'], '.svg': ['image/svg'], From ff865a1bcbf8ae3b042c1c2001a2b4cc2d502038 Mon Sep 17 00:00:00 2001 From: ayykamp Date: Mon, 27 Jan 2025 01:55:15 +0100 Subject: [PATCH 2/5] docs: add support for .jp2 --- docs/docs/features/supported-formats.md | 33 +++++++++++++------------ 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/docs/docs/features/supported-formats.md b/docs/docs/features/supported-formats.md index bb6d00a100fcd..96ddc7cb1453c 100644 --- a/docs/docs/features/supported-formats.md +++ b/docs/docs/features/supported-formats.md @@ -8,22 +8,23 @@ For the full list, refer to the [Immich source code](https://github.com/immich-a ## Image formats -| Format | Extension(s) | Supported? | Notes | -| :-------- | :---------------------------- | :----------------: | :-------------- | -| `AVIF` | `.avif` | :white_check_mark: | | -| `BMP` | `.bmp` | :white_check_mark: | | -| `GIF` | `.gif` | :white_check_mark: | | -| `HEIC` | `.heic` | :white_check_mark: | | -| `HEIF` | `.heif` | :white_check_mark: | | -| `JPEG` | `.webp` `.jpg` `.jpe` `.insp` | :white_check_mark: | | -| `JPEG XL` | `.jxl` | :white_check_mark: | | -| `PNG` | `.webp` | :white_check_mark: | | -| `PSD` | `.psd` | :white_check_mark: | Adobe Photoshop | -| `RAW` | `.raw` | :white_check_mark: | | -| `RW2` | `.rw2` | :white_check_mark: | | -| `SVG` | `.svg` | :white_check_mark: | | -| `TIFF` | `.tif` `.tiff` | :white_check_mark: | | -| `WEBP` | `.webp` | :white_check_mark: | | +| Format | Extension(s) | Supported? | Notes | +| :-------- | :---------------------------- | :----------------: | :-------------- | +| `AVIF` | `.avif` | :white_check_mark: | | +| `BMP` | `.bmp` | :white_check_mark: | | +| `GIF` | `.gif` | :white_check_mark: | | +| `HEIC` | `.heic` | :white_check_mark: | | +| `HEIF` | `.heif` | :white_check_mark: | | +| `JPEG` | `.webp` `.jpg` `.jpe` `.insp` | :white_check_mark: | | +| `JPEG XL` | `.jxl` | :white_check_mark: | | +| `JPEG 2000` | `.jp2` | :white_check_mark: | | +| `PNG` | `.webp` | :white_check_mark: | | +| `PSD` | `.psd` | :white_check_mark: | Adobe Photoshop | +| `RAW` | `.raw` | :white_check_mark: | | +| `RW2` | `.rw2` | :white_check_mark: | | +| `SVG` | `.svg` | :white_check_mark: | | +| `TIFF` | `.tif` `.tiff` | :white_check_mark: | | +| `WEBP` | `.webp` | :white_check_mark: | | ## Video formats From b47c08fba011cc07f58837b9633c5e79b6d4e839 Mon Sep 17 00:00:00 2001 From: ayykamp Date: Tue, 28 Jan 2025 01:36:05 +0100 Subject: [PATCH 3/5] chore: fix tests --- server/src/services/asset-media.service.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/services/asset-media.service.spec.ts b/server/src/services/asset-media.service.spec.ts index ab5aabcf788b5..9ebaa80d211ec 100644 --- a/server/src/services/asset-media.service.spec.ts +++ b/server/src/services/asset-media.service.spec.ts @@ -73,9 +73,9 @@ const validImages = [ '.heic', '.heif', '.iiq', + '.jp2', '.jpeg', '.jpg', - '.jp2', '.jxl', '.k25', '.kdc', From 2323e700868fa7a629899e81c9f27f1e8940e454 Mon Sep 17 00:00:00 2001 From: ayykamp Date: Tue, 28 Jan 2025 16:55:53 +0100 Subject: [PATCH 4/5] fix formatting --- docs/docs/features/supported-formats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/features/supported-formats.md b/docs/docs/features/supported-formats.md index 96ddc7cb1453c..61d4a49e76c84 100644 --- a/docs/docs/features/supported-formats.md +++ b/docs/docs/features/supported-formats.md @@ -9,7 +9,7 @@ For the full list, refer to the [Immich source code](https://github.com/immich-a ## Image formats | Format | Extension(s) | Supported? | Notes | -| :-------- | :---------------------------- | :----------------: | :-------------- | +| :---------- | :---------------------------- | :----------------: | :-------------- | | `AVIF` | `.avif` | :white_check_mark: | | | `BMP` | `.bmp` | :white_check_mark: | | | `GIF` | `.gif` | :white_check_mark: | | From db7c9ec1f663dc6685a473f08f100433245ffeb2 Mon Sep 17 00:00:00 2001 From: ayykamp Date: Tue, 28 Jan 2025 16:59:31 +0100 Subject: [PATCH 5/5] unify sorting --- docs/docs/features/supported-formats.md | 2 +- server/src/utils/mime-types.spec.ts | 2 +- server/src/utils/mime-types.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/features/supported-formats.md b/docs/docs/features/supported-formats.md index 61d4a49e76c84..0881d844ac3c3 100644 --- a/docs/docs/features/supported-formats.md +++ b/docs/docs/features/supported-formats.md @@ -15,9 +15,9 @@ For the full list, refer to the [Immich source code](https://github.com/immich-a | `GIF` | `.gif` | :white_check_mark: | | | `HEIC` | `.heic` | :white_check_mark: | | | `HEIF` | `.heif` | :white_check_mark: | | +| `JPEG 2000` | `.jp2` | :white_check_mark: | | | `JPEG` | `.webp` `.jpg` `.jpe` `.insp` | :white_check_mark: | | | `JPEG XL` | `.jxl` | :white_check_mark: | | -| `JPEG 2000` | `.jp2` | :white_check_mark: | | | `PNG` | `.webp` | :white_check_mark: | | | `PSD` | `.psd` | :white_check_mark: | Adobe Photoshop | | `RAW` | `.raw` | :white_check_mark: | | diff --git a/server/src/utils/mime-types.spec.ts b/server/src/utils/mime-types.spec.ts index 68665c6735143..6c2f92c2eecab 100644 --- a/server/src/utils/mime-types.spec.ts +++ b/server/src/utils/mime-types.spec.ts @@ -22,10 +22,10 @@ describe('mimeTypes', () => { { mimetype: 'image/heif', extension: '.heif' }, { mimetype: 'image/hif', extension: '.hif' }, { mimetype: 'image/iiq', extension: '.iiq' }, + { mimetype: 'image/jp2', extension: '.jp2' }, { mimetype: 'image/jpeg', extension: '.jpe' }, { mimetype: 'image/jpeg', extension: '.jpeg' }, { mimetype: 'image/jpeg', extension: '.jpg' }, - { mimetype: 'image/jp2', extension: '.jp2' }, { mimetype: 'image/jxl', extension: '.jxl' }, { mimetype: 'image/k25', extension: '.k25' }, { mimetype: 'image/kdc', extension: '.kdc' }, diff --git a/server/src/utils/mime-types.ts b/server/src/utils/mime-types.ts index 3f0a5c2938466..37dfe8153a5e7 100644 --- a/server/src/utils/mime-types.ts +++ b/server/src/utils/mime-types.ts @@ -43,10 +43,10 @@ const image: Record = { '.heif': ['image/heif'], '.hif': ['image/hif'], '.insp': ['image/jpeg'], + '.jp2': ['image/jp2'], '.jpe': ['image/jpeg'], '.jpeg': ['image/jpeg'], '.jpg': ['image/jpeg'], - '.jp2': ['image/jp2'], '.jxl': ['image/jxl'], '.png': ['image/png'], '.svg': ['image/svg'],