@browser-mc/browser-image-resizer-ex 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/animated-webp.d.ts +5 -3
- package/dist/animated-webp.d.ts.map +1 -1
- package/dist/animated-webp.js.map +1 -1
- package/dist/frame-utils.d.ts +7 -3
- package/dist/frame-utils.d.ts.map +1 -1
- package/dist/frame-utils.js +29 -2
- package/dist/frame-utils.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +110 -8
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -47,6 +47,11 @@ const result = await resizeAndConvertImage({
|
|
|
47
47
|
fit: 'contain',
|
|
48
48
|
exif: 'keep',
|
|
49
49
|
colorMetadata: 'preserve',
|
|
50
|
+
rawBitDepth: 8,
|
|
51
|
+
rawChromaSubsampling: '420',
|
|
52
|
+
avif: {
|
|
53
|
+
chromaSubsampling: '420',
|
|
54
|
+
},
|
|
50
55
|
});
|
|
51
56
|
|
|
52
57
|
if (result.kind === 'animated') {
|
|
@@ -98,6 +103,9 @@ console.log(result.blob);
|
|
|
98
103
|
|
|
99
104
|
- Resizing automatically uses raw planar resize for HDR-like formats when `VideoFrame.copyTo()` exposes a supported planar format, and otherwise uses Canvas.
|
|
100
105
|
- `colorMetadata: 'preserve'` is the default. Use `colorMetadata: 'canvas-sdr'` to draw through an sRGB Canvas path and mark the output frame as BT.709 SDR.
|
|
106
|
+
- With `colorMetadata: 'preserve'`, `resizeAndConvertImage` reads source container color metadata through `@browser-mc/media-container` and preserves it when the resize and encode path does not require Canvas color conversion. AVIF `colr/nclx` CICP metadata and AVIF/JPEG/WebP ICC profiles are carried through to compatible AVIF outputs. Explicit `avif.colorMetadata`, `avif.color`, and `avif.colorSpace` options still take precedence for AVIF output. JPEG/WebP output is encoded through Canvas, so source ICC profiles are not reattached after Canvas conversion.
|
|
107
|
+
- `rawBitDepth` and `rawChromaSubsampling` are optional raw planar conversion controls. Use `8`, `10`, or `12` for bit depth, and `444`, `422`, or `420` for chroma. `preserve` is the default for both. These options affect supported raw planar `VideoFrame`s before encoding. For AVIF output, `rawChromaSubsampling: '420'` or `'444'` is also used as the encoder chroma default unless `avif.chromaSubsampling` is set explicitly.
|
|
108
|
+
- Chromium may support 8-bit AVIF encoding while rejecting the matching 10-bit AV1 codec for high-bit-depth frames. When AVIF output is requested and `avif.codec` is not set, `resizeAndConvertImage` checks the 10-bit and 8-bit encoder configs for high-bit-depth planar frames. If 10-bit is unavailable but 8-bit is available, supported planar frames are converted to 8-bit before encoding and an 8-bit AV1 codec is passed explicitly. A warning is added when this implicit 8-bit fallback changes the frame bit depth.
|
|
101
109
|
- JPEG/WebP encoding currently goes through `OffscreenCanvas.convertToBlob()`, so strict HDR preservation is not expected there.
|
|
102
110
|
- Animated WebP currently writes full-canvas frames and does not yet optimize changed rectangles.
|
|
103
111
|
- AVIF EXIF writing remuxes to a minimal AVIF structure through `@browser-mc/media-container`. Nonessential original AVIF boxes are not preserved.
|
package/dist/animated-webp.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { muxAnimatedWebp, type AnimatedWebpFrame, type AnimatedWebpMuxOptions } from '@browser-mc/media-container';
|
|
2
|
-
import { type FrameColorInspection, type
|
|
3
|
-
import { type BrowserImageColorMetadataPolicy } from './frame-utils.js';
|
|
2
|
+
import { type FrameColorInspection, type PlanarResizeAlgorithm } from '@browser-mc/webcodecs-color';
|
|
3
|
+
import { type BrowserImageRawBitDepth, type BrowserImageRawChromaSubsampling, type BrowserImageColorMetadataPolicy } from './frame-utils.js';
|
|
4
4
|
export type { AnimatedWebpFrame, AnimatedWebpMuxOptions, };
|
|
5
5
|
export { muxAnimatedWebp };
|
|
6
6
|
export type BrowserAnimatedImageResizerOptions = {
|
|
@@ -9,7 +9,9 @@ export type BrowserAnimatedImageResizerOptions = {
|
|
|
9
9
|
width?: number;
|
|
10
10
|
height?: number;
|
|
11
11
|
fit?: 'contain' | 'cover' | 'fill';
|
|
12
|
-
rawResizeAlgorithm?:
|
|
12
|
+
rawResizeAlgorithm?: PlanarResizeAlgorithm;
|
|
13
|
+
rawBitDepth?: BrowserImageRawBitDepth;
|
|
14
|
+
rawChromaSubsampling?: BrowserImageRawChromaSubsampling;
|
|
13
15
|
colorMetadata?: BrowserImageColorMetadataPolicy;
|
|
14
16
|
quality?: number;
|
|
15
17
|
loopCount?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-webp.d.ts","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,
|
|
1
|
+
{"version":3,"file":"animated-webp.d.ts","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAML,KAAK,uBAAuB,EAC5B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACrC,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,sBAAsB,GACvB,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,MAAM,kCAAkC,GAAG;IAC/C,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IAC3C,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;IACxD,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,oBAAoB,CAAC;QACjC,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;KACvC,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAQF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAmCvI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animated-webp.js","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAGhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,YAAY,GAGb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"animated-webp.js","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"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"}
|
package/dist/frame-utils.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type PlanarResizeAlgorithm, type PlanarBitDepth, type PlanarChromaSubsampling } from '@browser-mc/webcodecs-color';
|
|
2
2
|
import { copyArrayBuffer } from '@browser-mc/binary';
|
|
3
3
|
export { copyArrayBuffer };
|
|
4
4
|
export type BrowserImageResizeFit = 'contain' | 'cover' | 'fill';
|
|
5
5
|
export type BrowserImageResizePath = 'none' | 'raw' | 'canvas';
|
|
6
6
|
export type BrowserImageColorMetadataPolicy = 'preserve' | 'canvas-sdr';
|
|
7
|
+
export type BrowserImageRawBitDepth = 'preserve' | PlanarBitDepth;
|
|
8
|
+
export type BrowserImageRawChromaSubsampling = 'preserve' | PlanarChromaSubsampling;
|
|
7
9
|
export type FrameResizeOptions = {
|
|
8
10
|
width?: number;
|
|
9
11
|
height?: number;
|
|
10
12
|
fit?: BrowserImageResizeFit;
|
|
11
|
-
rawResizeAlgorithm?:
|
|
13
|
+
rawResizeAlgorithm?: PlanarResizeAlgorithm;
|
|
14
|
+
rawBitDepth?: BrowserImageRawBitDepth;
|
|
15
|
+
rawChromaSubsampling?: BrowserImageRawChromaSubsampling;
|
|
12
16
|
colorMetadata?: BrowserImageColorMetadataPolicy;
|
|
13
17
|
};
|
|
14
18
|
export type DecodeImageFrameOptions = {
|
|
@@ -34,7 +38,7 @@ export declare function resolveTargetSize(sourceWidth: number, sourceHeight: num
|
|
|
34
38
|
export declare function resizeFrameForColor(frame: VideoFrame, size: {
|
|
35
39
|
width: number;
|
|
36
40
|
height: number;
|
|
37
|
-
}, options: Pick<FrameResizeOptions, 'rawResizeAlgorithm' | 'colorMetadata'>): Promise<{
|
|
41
|
+
}, options: Pick<FrameResizeOptions, 'rawResizeAlgorithm' | 'rawBitDepth' | 'rawChromaSubsampling' | 'colorMetadata'>): Promise<{
|
|
38
42
|
frame: VideoFrame;
|
|
39
43
|
path: BrowserImageResizePath;
|
|
40
44
|
warnings: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-utils.d.ts","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,
|
|
1
|
+
{"version":3,"file":"frame-utils.d.ts","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/frame-utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { classifyFrameColor, convertFrameToCanvasSdr,
|
|
1
|
+
import { classifyFrameColor, convertFrameToCanvasSdr, resizeFramePlanar, resizeFrameWithCanvas, } from '@browser-mc/webcodecs-color';
|
|
2
2
|
import { copyArrayBuffer } from '@browser-mc/binary';
|
|
3
3
|
export { copyArrayBuffer };
|
|
4
4
|
export async function createImageDecoder(input, type, options = {}) {
|
|
@@ -81,10 +81,16 @@ export function resolveTargetSize(sourceWidth, sourceHeight, options) {
|
|
|
81
81
|
}
|
|
82
82
|
export async function resizeFrameForColor(frame, size, options) {
|
|
83
83
|
const colorMetadata = options.colorMetadata ?? 'preserve';
|
|
84
|
+
const rawBitDepth = options.rawBitDepth ?? 'preserve';
|
|
85
|
+
const rawChromaSubsampling = options.rawChromaSubsampling ?? 'preserve';
|
|
86
|
+
const wantsRawPlanarConversion = rawBitDepth !== 'preserve' || rawChromaSubsampling !== 'preserve';
|
|
84
87
|
if (size.width === frame.displayWidth && size.height === frame.displayHeight) {
|
|
85
88
|
if (colorMetadata === 'canvas-sdr') {
|
|
86
89
|
return { frame: convertFrameToCanvasSdr(frame).frame, path: 'canvas', warnings: [] };
|
|
87
90
|
}
|
|
91
|
+
if (wantsRawPlanarConversion) {
|
|
92
|
+
return processRawPlanarFrame(frame, { ...size, ...options }, [], 'none');
|
|
93
|
+
}
|
|
88
94
|
return { frame, path: 'none', warnings: [] };
|
|
89
95
|
}
|
|
90
96
|
const warnings = [];
|
|
@@ -104,8 +110,10 @@ export async function resizeFrameForColor(frame, size, options) {
|
|
|
104
110
|
}
|
|
105
111
|
if (color.recommendedPath === 'raw-hdr') {
|
|
106
112
|
try {
|
|
107
|
-
const resized = await
|
|
113
|
+
const resized = await resizeFramePlanar(frame, {
|
|
108
114
|
...size,
|
|
115
|
+
bitDepth: rawBitDepth === 'preserve' ? undefined : rawBitDepth,
|
|
116
|
+
chromaSubsampling: rawChromaSubsampling === 'preserve' ? undefined : rawChromaSubsampling,
|
|
109
117
|
algorithm: options.rawResizeAlgorithm ?? 'bilinear',
|
|
110
118
|
});
|
|
111
119
|
return { frame: resized.frame, path: 'raw', warnings };
|
|
@@ -118,8 +126,27 @@ export async function resizeFrameForColor(frame, size, options) {
|
|
|
118
126
|
if (color.recommendedPath === 'raw-hdr') {
|
|
119
127
|
warnings.push('Canvas fallback may collapse HDR/BT.2020 content to sRGB or Display P3.');
|
|
120
128
|
}
|
|
129
|
+
if (wantsRawPlanarConversion) {
|
|
130
|
+
warnings.push('raw planar conversion was requested but Canvas resize output is not a supported planar YUV frame.');
|
|
131
|
+
}
|
|
121
132
|
return { frame: resized.frame, path: 'canvas', warnings };
|
|
122
133
|
}
|
|
134
|
+
async function processRawPlanarFrame(frame, options, warnings, fallbackPath) {
|
|
135
|
+
try {
|
|
136
|
+
const converted = await resizeFramePlanar(frame, {
|
|
137
|
+
width: options.width,
|
|
138
|
+
height: options.height,
|
|
139
|
+
bitDepth: options.rawBitDepth === 'preserve' ? undefined : options.rawBitDepth,
|
|
140
|
+
chromaSubsampling: options.rawChromaSubsampling === 'preserve' ? undefined : options.rawChromaSubsampling,
|
|
141
|
+
algorithm: options.rawResizeAlgorithm ?? 'bilinear',
|
|
142
|
+
});
|
|
143
|
+
return { frame: converted.frame, path: 'raw', warnings };
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
warnings.push(`raw planar conversion was not available: ${error instanceof Error ? error.message : String(error)}`);
|
|
147
|
+
return { frame, path: fallbackPath, warnings };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
123
150
|
export async function encodeFrameWithCanvas(frame, mime, quality = 0.85) {
|
|
124
151
|
const canvas = new OffscreenCanvas(frame.displayWidth, frame.displayHeight);
|
|
125
152
|
const context = canvas.getContext('2d', { colorSpace: classifyFrameColor(frame).canvasColorSpace });
|
package/dist/frame-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-utils.js","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"frame-utils.js","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type ExifPayload } from '@browser-mc/exif-transplant';
|
|
2
|
-
import { type AvifEncodeSupport, type EncodeAvifOptions } from '@browser-mc/webcodecs-avif';
|
|
3
|
-
import { type BrowserImageColorMetadataPolicy, type BrowserImageResizeFit, type BrowserImageResizePath, type ImageInputInspection } from './frame-utils.js';
|
|
2
|
+
import { readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace, type AvifEncodeSupport, type EncodeAvifOptions } from '@browser-mc/webcodecs-avif';
|
|
3
|
+
import { type BrowserImageColorMetadataPolicy, type BrowserImageRawBitDepth, type BrowserImageRawChromaSubsampling, type BrowserImageResizeFit, type BrowserImageResizePath, type ImageInputInspection } from './frame-utils.js';
|
|
4
4
|
import { muxAnimatedWebp, type BrowserAnimatedImageResizerOptions, type BrowserAnimatedImageResizerResult, type AnimatedWebpFrame, type AnimatedWebpMuxOptions } from './animated-webp.js';
|
|
5
|
-
import { type FrameColorClassification, type FrameColorInspection, type
|
|
5
|
+
import { type FrameColorClassification, type FrameColorInspection, type PlanarResizeAlgorithm } from '@browser-mc/webcodecs-color';
|
|
6
6
|
export type BrowserImageOutputMime = 'image/avif' | 'image/jpeg' | 'image/webp';
|
|
7
7
|
export type BrowserImageExifPolicy = 'keep' | 'drop' | 'drop-gps';
|
|
8
8
|
export type BrowserImageAnimationPolicy = 'preserve' | 'first-frame' | 'error';
|
|
9
|
-
export type { AnimatedWebpFrame, AnimatedWebpMuxOptions, BrowserAnimatedImageResizerOptions, BrowserAnimatedImageResizerResult, BrowserImageColorMetadataPolicy, BrowserImageResizeFit, BrowserImageResizePath, ImageInputInspection, };
|
|
9
|
+
export type { AnimatedWebpFrame, AnimatedWebpMuxOptions, BrowserAnimatedImageResizerOptions, BrowserAnimatedImageResizerResult, BrowserImageColorMetadataPolicy, BrowserImageRawBitDepth, BrowserImageRawChromaSubsampling, BrowserImageResizeFit, BrowserImageResizePath, ImageInputInspection, };
|
|
10
10
|
export type BrowserImageResizerOptions = {
|
|
11
11
|
input: Blob | ArrayBuffer | Uint8Array;
|
|
12
12
|
inputMime?: string;
|
|
@@ -17,7 +17,9 @@ export type BrowserImageResizerOptions = {
|
|
|
17
17
|
exif?: BrowserImageExifPolicy;
|
|
18
18
|
animation?: BrowserImageAnimationPolicy;
|
|
19
19
|
colorSpaceConversion?: ColorSpaceConversion;
|
|
20
|
-
rawResizeAlgorithm?:
|
|
20
|
+
rawResizeAlgorithm?: PlanarResizeAlgorithm;
|
|
21
|
+
rawBitDepth?: BrowserImageRawBitDepth;
|
|
22
|
+
rawChromaSubsampling?: BrowserImageRawChromaSubsampling;
|
|
21
23
|
colorMetadata?: BrowserImageColorMetadataPolicy;
|
|
22
24
|
quality?: number;
|
|
23
25
|
avif?: Omit<EncodeAvifOptions, 'width' | 'height' | 'quality'>;
|
|
@@ -81,5 +83,5 @@ export declare function inspectImageInput(input: Blob | ArrayBuffer | Uint8Array
|
|
|
81
83
|
}>;
|
|
82
84
|
export declare function resizeAndConvertImage(options: BrowserImageResizerOptions): Promise<BrowserImageConversionResult>;
|
|
83
85
|
export declare function resizeAnimatedImageToWebp(input: Blob | ArrayBuffer | Uint8Array, options?: Omit<BrowserAnimatedImageResizerOptions, 'input'>): Promise<BrowserAnimatedImageResizerResult>;
|
|
84
|
-
export { muxAnimatedWebp };
|
|
86
|
+
export { muxAnimatedWebp, readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace };
|
|
85
87
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,WAAW,EAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { detectImageMime, readExif, stripGpsFromExif, writeExif, } from '@browser-mc/exif-transplant';
|
|
2
|
-
import { checkAvifEncodeSupport, encodeImageToAvif, } from '@browser-mc/webcodecs-avif';
|
|
2
|
+
import { checkAvifEncodeSupport, encodeImageToAvif, readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace, } from '@browser-mc/webcodecs-avif';
|
|
3
|
+
import { readImageColorMetadata, } from '@browser-mc/media-container';
|
|
3
4
|
import { copyArrayBuffer, decodeFirstImageFrame, encodeFrameWithCanvas, inspectImageTrack, resizeFrameForColor, resolveTargetSize, toUint8Array, } from './frame-utils.js';
|
|
4
5
|
import { resizeAnimatedImageToWebp as resizeAnimatedImageToWebpInternal, muxAnimatedWebp, } from './animated-webp.js';
|
|
5
|
-
import { classifyFrameColor, inspectFrame, } from '@browser-mc/webcodecs-color';
|
|
6
|
+
import { classifyFrameColor, describePlanarFormat, inspectFrame, resizeFramePlanar, } from '@browser-mc/webcodecs-color';
|
|
6
7
|
export function getBrowserImageResizerSupport() {
|
|
7
8
|
const canvas = typeof OffscreenCanvas !== 'undefined' ? new OffscreenCanvas(1, 1) : null;
|
|
8
9
|
const context = canvas?.getContext('2d', { colorSpace: 'srgb' });
|
|
@@ -75,6 +76,7 @@ export async function inspectImageInput(input, inputMime, options = {}) {
|
|
|
75
76
|
export async function resizeAndConvertImage(options) {
|
|
76
77
|
const inputBytes = await toUint8Array(options.input);
|
|
77
78
|
const inputMime = options.inputMime ?? detectInputMime(inputBytes, options.input);
|
|
79
|
+
const inputColorMetadata = readSourceColorMetadata(inputBytes, inputMime);
|
|
78
80
|
const inputInfo = await inspectImageTrack(inputBytes, inputMime, {
|
|
79
81
|
colorSpaceConversion: options.colorSpaceConversion ?? 'none',
|
|
80
82
|
preferAnimation: (options.animation ?? 'preserve') !== 'first-frame',
|
|
@@ -93,6 +95,8 @@ export async function resizeAndConvertImage(options) {
|
|
|
93
95
|
height: options.height,
|
|
94
96
|
fit: options.fit,
|
|
95
97
|
rawResizeAlgorithm: options.rawResizeAlgorithm,
|
|
98
|
+
rawBitDepth: options.rawBitDepth,
|
|
99
|
+
rawChromaSubsampling: options.rawChromaSubsampling,
|
|
96
100
|
quality: options.quality,
|
|
97
101
|
colorSpaceConversion: options.colorSpaceConversion,
|
|
98
102
|
colorMetadata: options.colorMetadata,
|
|
@@ -108,11 +112,17 @@ export async function resizeAndConvertImage(options) {
|
|
|
108
112
|
const color = classifyFrameColor(inputInspection);
|
|
109
113
|
const size = resolveTargetSize(frame.displayWidth, frame.displayHeight, options);
|
|
110
114
|
const resized = await resizeFrameForColor(frame, size, options);
|
|
115
|
+
const preservedColorMetadata = options.colorMetadata === 'canvas-sdr' || resized.path === 'canvas'
|
|
116
|
+
? null
|
|
117
|
+
: inputColorMetadata;
|
|
111
118
|
try {
|
|
112
119
|
const encoded = await encodeFrame(resized.frame, outputMime, {
|
|
113
120
|
quality: options.quality,
|
|
114
121
|
avif: options.avif,
|
|
122
|
+
inputColorMetadata: preservedColorMetadata,
|
|
115
123
|
preserveAlpha: inputMime !== 'image/jpeg',
|
|
124
|
+
rawChromaSubsampling: options.rawChromaSubsampling,
|
|
125
|
+
warnings: resized.warnings,
|
|
116
126
|
});
|
|
117
127
|
const withExif = applyExifPolicy(encoded, outputMime, sourceExif, exifPolicy);
|
|
118
128
|
const blob = new Blob([copyArrayBuffer(withExif)], { type: outputMime });
|
|
@@ -147,7 +157,17 @@ export async function resizeAndConvertImage(options) {
|
|
|
147
157
|
export async function resizeAnimatedImageToWebp(input, options = {}) {
|
|
148
158
|
return resizeAnimatedImageToWebpInternal({ ...options, input });
|
|
149
159
|
}
|
|
150
|
-
export { muxAnimatedWebp };
|
|
160
|
+
export { muxAnimatedWebp, readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace };
|
|
161
|
+
function readSourceColorMetadata(data, mime) {
|
|
162
|
+
if (mime !== 'image/avif' && mime !== 'image/jpeg' && mime !== 'image/webp')
|
|
163
|
+
return null;
|
|
164
|
+
try {
|
|
165
|
+
return readImageColorMetadata(data, mime);
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
151
171
|
function readSourceExif(data) {
|
|
152
172
|
try {
|
|
153
173
|
return readExif(data);
|
|
@@ -176,15 +196,97 @@ function defaultOutputMime(inputMime, inputInfo) {
|
|
|
176
196
|
async function encodeFrame(frame, mime, options) {
|
|
177
197
|
if (mime === 'image/avif') {
|
|
178
198
|
const alpha = options.avif?.alpha ?? (options.preserveAlpha ? 'keep' : 'discard');
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
199
|
+
const chromaSubsampling = options.avif?.chromaSubsampling
|
|
200
|
+
?? avifChromaSubsamplingForRaw(options.rawChromaSubsampling);
|
|
201
|
+
const prepared = await prepareFrameForAvifEncode(frame, {
|
|
202
|
+
codec: options.avif?.codec,
|
|
203
|
+
chromaSubsampling,
|
|
204
|
+
warnings: options.warnings,
|
|
205
|
+
});
|
|
206
|
+
try {
|
|
207
|
+
const inputColorMetadata = options.avif?.colorMetadata === undefined
|
|
208
|
+
&& options.avif?.color === undefined
|
|
209
|
+
&& options.avif?.colorSpace === undefined
|
|
210
|
+
? options.inputColorMetadata ?? undefined
|
|
211
|
+
: undefined;
|
|
212
|
+
return await encodeImageToAvif(prepared.frame, {
|
|
213
|
+
...options.avif,
|
|
214
|
+
alpha,
|
|
215
|
+
chromaSubsampling,
|
|
216
|
+
codec: prepared.codec,
|
|
217
|
+
colorMetadata: options.avif?.colorMetadata ?? inputColorMetadata,
|
|
218
|
+
width: frame.displayWidth,
|
|
219
|
+
height: frame.displayHeight,
|
|
220
|
+
quality: options.quality,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
if (prepared.frame !== frame)
|
|
225
|
+
prepared.frame.close();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return encodeFrameWithCanvas(frame, mime, options.quality);
|
|
229
|
+
}
|
|
230
|
+
async function prepareFrameForAvifEncode(frame, options) {
|
|
231
|
+
if (options.codec !== undefined || !isHighBitdepthPlanarFrame(frame))
|
|
232
|
+
return { frame, codec: options.codec };
|
|
233
|
+
const chromaSubsampling = options.chromaSubsampling ?? '444';
|
|
234
|
+
const tenBitCodec = avifCodecForSubsampling(chromaSubsampling, 10);
|
|
235
|
+
const eightBitCodec = avifCodecForSubsampling(chromaSubsampling, 8);
|
|
236
|
+
const [tenBitSupport, eightBitSupport] = await Promise.all([
|
|
237
|
+
isVideoEncoderConfigSupported(tenBitCodec, frame),
|
|
238
|
+
isVideoEncoderConfigSupported(eightBitCodec, frame),
|
|
239
|
+
]);
|
|
240
|
+
if (tenBitSupport || !eightBitSupport)
|
|
241
|
+
return { frame, codec: options.codec };
|
|
242
|
+
try {
|
|
243
|
+
const converted = await resizeFramePlanar(frame, {
|
|
182
244
|
width: frame.displayWidth,
|
|
183
245
|
height: frame.displayHeight,
|
|
184
|
-
|
|
246
|
+
chromaSubsampling,
|
|
247
|
+
bitDepth: 8,
|
|
185
248
|
});
|
|
249
|
+
options.warnings?.push('AVIF 10-bit encode was not supported, so the frame was converted to 8-bit before encoding.');
|
|
250
|
+
return { frame: converted.frame, codec: eightBitCodec };
|
|
186
251
|
}
|
|
187
|
-
|
|
252
|
+
catch (error) {
|
|
253
|
+
options.warnings?.push(`AVIF 10-bit encode was not supported, but 8-bit raw conversion was not available: ${error instanceof Error ? error.message : String(error)}`);
|
|
254
|
+
return { frame, codec: options.codec };
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
async function isVideoEncoderConfigSupported(codec, frame) {
|
|
258
|
+
if (typeof VideoEncoder === 'undefined')
|
|
259
|
+
return false;
|
|
260
|
+
try {
|
|
261
|
+
const support = await VideoEncoder.isConfigSupported({
|
|
262
|
+
codec,
|
|
263
|
+
width: frame.displayWidth,
|
|
264
|
+
height: frame.displayHeight,
|
|
265
|
+
bitrate: Math.max(80_000, Math.round(frame.displayWidth * frame.displayHeight * 0.8 * 0.7)),
|
|
266
|
+
framerate: 1,
|
|
267
|
+
alpha: 'discard',
|
|
268
|
+
latencyMode: 'quality',
|
|
269
|
+
});
|
|
270
|
+
return support.supported === true;
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
function isHighBitdepthPlanarFrame(frame) {
|
|
277
|
+
if (!frame.format)
|
|
278
|
+
return false;
|
|
279
|
+
const descriptor = describePlanarFormat(frame.format);
|
|
280
|
+
return descriptor !== null && descriptor.bitDepth > 8;
|
|
281
|
+
}
|
|
282
|
+
function avifCodecForSubsampling(chromaSubsampling, bitDepth) {
|
|
283
|
+
const profile = chromaSubsampling === '444' ? 1 : 0;
|
|
284
|
+
return `av01.${profile}.08M.${String(bitDepth).padStart(2, '0')}`;
|
|
285
|
+
}
|
|
286
|
+
function avifChromaSubsamplingForRaw(rawChromaSubsampling) {
|
|
287
|
+
if (rawChromaSubsampling === '420' || rawChromaSubsampling === '444')
|
|
288
|
+
return rawChromaSubsampling;
|
|
289
|
+
return undefined;
|
|
188
290
|
}
|
|
189
291
|
function applyExifPolicy(data, mime, sourceExif, policy) {
|
|
190
292
|
if (policy === 'drop' || !sourceExif)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@browser-mc/browser-image-resizer-ex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
+
"@browser-mc/media-container": "^0.3.0",
|
|
19
20
|
"@browser-mc/binary": "^0.0.1",
|
|
20
|
-
"@browser-mc/
|
|
21
|
-
"@browser-mc/exif-transplant": "^0.0.
|
|
22
|
-
"@browser-mc/webcodecs-
|
|
23
|
-
"@browser-mc/webcodecs-avif": "^0.3.0"
|
|
21
|
+
"@browser-mc/webcodecs-color": "^0.1.0",
|
|
22
|
+
"@browser-mc/exif-transplant": "^0.0.3",
|
|
23
|
+
"@browser-mc/webcodecs-avif": "^0.4.0"
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
"dist",
|