image-js
Version:
Image processing and manipulation in JavaScript
27 lines • 855 B
JavaScript
import { decode as decodeExif } from 'fast-jpeg';
import { decode } from 'jpeg-js';
import { Image } from '../Image.js';
import { getMetadata } from './getMetadata.js';
/**
* Decode a jpeg. See the jpeg-js npm module.
* @param buffer - The data to decode.
* @returns The decoded image.
*/
export function decodeJpeg(buffer) {
const jpeg = decode(buffer, {
useTArray: true,
maxMemoryUsageInMB: Number.POSITIVE_INFINITY,
maxResolutionInMP: Number.POSITIVE_INFINITY,
});
const decodedExif = decodeExif(buffer);
// TODO : handle stacks (many IFDs?)
const meta = decodedExif.exif?.[0]
? getMetadata(decodedExif.exif[0])
: undefined;
return new Image(jpeg.width, jpeg.height, {
data: jpeg.data,
colorModel: 'RGBA',
meta,
});
}
//# sourceMappingURL=decodeJpeg.js.map