Blame Raw
· · · 63 lines (1.7 KB)
0 contributors
1import { createJimp } from '@jimp/core';
2
3// Optimized image formats
4import webp from '@jimp/wasm-webp';
5import png from '@jimp/wasm-png';
6import jpeg from '@jimp/wasm-jpeg';
7import avif from '@jimp/wasm-avif';
8
9// Other image formats
10import bmp, { msBmp } from '@jimp/js-bmp';
11import gif from '@jimp/js-gif';
12import tiff from '@jimp/js-tiff';
13
14// Plugins
15import * as blit from '@jimp/plugin-blit';
16import * as circle from '@jimp/plugin-circle';
17import * as color from '@jimp/plugin-color';
18import * as contain from '@jimp/plugin-contain';
19import * as cover from '@jimp/plugin-cover';
20import * as crop from '@jimp/plugin-crop';
21import * as displace from '@jimp/plugin-displace';
22import * as fisheye from '@jimp/plugin-fisheye';
23import * as flip from '@jimp/plugin-flip';
24import * as mask from '@jimp/plugin-mask';
25import * as resize from '@jimp/plugin-resize';
26import * as rotate from '@jimp/plugin-rotate';
27import * as threshold from '@jimp/plugin-threshold';
28import * as quantize from '@jimp/plugin-quantize';
29
30const defaultPlugins = [
31 blit.methods,
32 circle.methods,
33 color.methods,
34 contain.methods,
35 cover.methods,
36 crop.methods,
37 displace.methods,
38 fisheye.methods,
39 flip.methods,
40 mask.methods,
41 resize.methods,
42 rotate.methods,
43 threshold.methods,
44 quantize.methods,
45];
46
47// A custom jimp that uses WASM for optimized formats and JS for the rest
48const Jimp = createJimp({
49 formats: [webp, png, jpeg, avif, bmp, msBmp, gif, tiff],
50 plugins: [...defaultPlugins],
51});
52
53const JimpMime = {
54 bmp: bmp().mime,
55 gif: gif().mime,
56 jpeg: jpeg().mime,
57 png: png().mime,
58 tiff: tiff().mime,
59};
60
61export default Jimp;
62
63export { Jimp, JimpMime };