imagescript 1.3.1 → 3.1.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/LICENSE +4 -1
- package/README.md +76 -26
- package/THIRD_PARTY_NOTICES.md +156 -0
- package/dist/animation.d.ts +55 -0
- package/dist/animation.js +167 -0
- package/dist/codecs/crc.d.ts +9 -0
- package/dist/codecs/crc.js +29 -0
- package/dist/codecs/exif.d.ts +11 -0
- package/dist/codecs/exif.js +27 -0
- package/dist/codecs/gif.d.ts +44 -0
- package/dist/codecs/gif.js +401 -0
- package/dist/codecs/jpeg.d.ts +35 -0
- package/dist/codecs/jpeg.js +980 -0
- package/dist/codecs/png.d.ts +97 -0
- package/dist/codecs/png.js +664 -0
- package/dist/codecs/quantize.d.ts +25 -0
- package/dist/codecs/quantize.js +302 -0
- package/dist/codecs/tga.d.ts +16 -0
- package/dist/codecs/tga.js +203 -0
- package/dist/codecs/tiff.d.ts +6 -0
- package/dist/codecs/tiff.js +546 -0
- package/dist/codecs/vp8-tables.d.ts +10 -0
- package/dist/codecs/vp8-tables.js +17 -0
- package/dist/codecs/vp8.d.ts +8 -0
- package/dist/codecs/vp8.js +711 -0
- package/dist/codecs/vp8l.d.ts +62 -0
- package/dist/codecs/vp8l.js +909 -0
- package/dist/codecs/webp.d.ts +67 -0
- package/dist/codecs/webp.js +280 -0
- package/dist/codecs/zlib.d.ts +22 -0
- package/dist/codecs/zlib.js +607 -0
- package/dist/frame.d.ts +57 -0
- package/dist/frame.js +65 -0
- package/dist/gif.d.ts +31 -0
- package/dist/gif.js +20 -0
- package/dist/image-type.d.ts +24 -0
- package/dist/image-type.js +64 -0
- package/dist/image.d.ts +553 -0
- package/dist/image.js +1156 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +20 -0
- package/dist/package.json +1 -0
- package/dist/render/font.d.ts +92 -0
- package/dist/render/font.js +954 -0
- package/dist/render/hinting.d.ts +110 -0
- package/dist/render/hinting.js +1236 -0
- package/dist/render/svg.d.ts +11 -0
- package/dist/render/svg.js +1717 -0
- package/dist/render/text.d.ts +63 -0
- package/dist/render/text.js +342 -0
- package/dist/text-layout.d.ts +46 -0
- package/dist/text-layout.js +35 -0
- package/dist/util/blur.d.ts +13 -0
- package/dist/util/blur.js +146 -0
- package/dist/util/mem.d.ts +10 -0
- package/dist/util/mem.js +23 -0
- package/dist/util/resample.d.ts +12 -0
- package/dist/util/resample.js +99 -0
- package/dist/util/utf8.d.ts +5 -0
- package/dist/util/utf8.js +55 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +1 -0
- package/licenses/Apache-2.0.txt +202 -0
- package/licenses/FTL.txt +169 -0
- package/licenses/README.ijg +260 -0
- package/package.json +31 -7
- package/ImageScript.d.ts +0 -954
- package/ImageScript.js +0 -1669
- package/bench/_.mjs +0 -166
- package/bench/all.mjs +0 -4
- package/bench/blur.mjs +0 -59
- package/bench/flip.mjs +0 -63
- package/bench/overlay.mjs +0 -35
- package/bench/package.json +0 -7
- package/bench/readme.md +0 -64
- package/bench/resize.mjs +0 -52
- package/codecs/LICENSE +0 -21
- package/codecs/lib.d.ts +0 -50
- package/codecs/lib.js +0 -6
- package/codecs/lib.mjs +0 -1
- package/codecs/node/bin/arm64-darwin.node +0 -0
- package/codecs/node/bin/arm64-linux.node +0 -0
- package/codecs/node/bin/x64-darwin.node +0 -0
- package/codecs/node/bin/x64-linux.node +0 -0
- package/codecs/node/bin/x64-win32.node +0 -0
- package/codecs/node/index.js +0 -3
- package/codecs/node/index.mjs +0 -6
- package/codecs/package.json +0 -14
- package/codecs/readme.md +0 -38
- package/codecs/wasm/bin/codecs.wasm +0 -0
- package/codecs/wasm/bin/simd.wasm +0 -0
- package/codecs/wasm/bundle/browser.js +0 -1
- package/codecs/wasm/index.js +0 -1
- package/codecs/wasm/index.mjs +0 -1
- package/png/README.md +0 -1
- package/png/node.js +0 -1137
- package/png/src/crc.mjs +0 -49
- package/png/src/mem.mjs +0 -24
- package/png/src/png.mjs +0 -254
- package/png/src/zlib.mjs +0 -618
- package/tsconfig.json +0 -21
- package/utils/mem.js +0 -26
- package/v2/codecs/magic.js +0 -25
- package/v2/framebuffer.d.ts +0 -67
- package/v2/framebuffer.js +0 -2352
- package/v2/framebuffer.mjs +0 -126
- package/v2/framebuffer.rs +0 -1264
- package/v2/index.d.ts +0 -84
- package/v2/index.js +0 -261
- package/v2/ops/blur.mjs +0 -303
- package/v2/ops/color.mjs +0 -277
- package/v2/ops/crop.mjs +0 -64
- package/v2/ops/fill.mjs +0 -33
- package/v2/ops/flip.mjs +0 -33
- package/v2/ops/index.mjs +0 -9
- package/v2/ops/iterator.mjs +0 -34
- package/v2/ops/overlay.mjs +0 -63
- package/v2/ops/resize.mjs +0 -166
- package/v2/ops/rotate.mjs +0 -117
- package/v2/util/mem.mjs +0 -24
- package/wasm/any/font.wasm +0 -0
- package/wasm/any/gif.wasm +0 -0
- package/wasm/any/jpeg.wasm +0 -0
- package/wasm/any/png.wasm +0 -0
- package/wasm/any/svg.wasm +0 -0
- package/wasm/any/tiff.wasm +0 -0
- package/wasm/node/font.js +0 -142
- package/wasm/node/gif.js +0 -76
- package/wasm/node/jpeg.js +0 -92
- package/wasm/node/png.js +0 -49
- package/wasm/node/svg.js +0 -56
- package/wasm/node/tiff.js +0 -47
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export interface EncodeOptions {
|
|
2
|
+
/** tEXt chunks, empty values are skipped */
|
|
3
|
+
text?: Record<string, string | undefined>;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
channels: number;
|
|
7
|
+
depth?: number;
|
|
8
|
+
level?: number;
|
|
9
|
+
/** packed RGB palette, makes the data palette indices (1 channel) */
|
|
10
|
+
palette?: Uint8Array;
|
|
11
|
+
/** alpha per palette entry */
|
|
12
|
+
transparency?: Uint8Array;
|
|
13
|
+
/** whether to paeth filter the rows (pays off for truecolor and greyscale images) */
|
|
14
|
+
filter?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface Decoded {
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
/** 8-bit RGBA */
|
|
20
|
+
pixels: Uint8Array;
|
|
21
|
+
/** Exif orientation (1-8) */
|
|
22
|
+
orientation: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Encodes raw pixel data into a PNG
|
|
26
|
+
* @param data Raw pixel data, rows packed MSB first for depths below 8
|
|
27
|
+
*/
|
|
28
|
+
export declare function encode(data: Uint8Array, { text, width, height, channels, depth, level, palette, transparency, filter: filterRows }: EncodeOptions): Promise<Uint8Array>;
|
|
29
|
+
/**
|
|
30
|
+
* Encodes 8-bit RGBA pixels into a PNG with the smallest lossless color type (see {@link pixelFormat}).
|
|
31
|
+
* Rows of non-palette images are paeth filtered (unless the data isn't compressed), palette indices aren't
|
|
32
|
+
* filtered (like libpng recommends)
|
|
33
|
+
*/
|
|
34
|
+
export declare function encodeRGBA(rgba: Uint8Array, width: number, height: number, level: number, text?: EncodeOptions['text']): Promise<Uint8Array>;
|
|
35
|
+
export interface APNGEncodeFrame {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
/** milliseconds (stored as a fraction of up to 65535/65535 seconds) */
|
|
41
|
+
duration: number;
|
|
42
|
+
/** 0 none, 1 background (transparent), 2 previous */
|
|
43
|
+
dispose: number;
|
|
44
|
+
/** RGBA */
|
|
45
|
+
pixels: Uint8Array;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Encodes frames into an APNG. Frames are alpha blended onto the canvas ("over"); the first frame is also the
|
|
49
|
+
* default image that viewers without APNG support show
|
|
50
|
+
* @param plays How often to play the animation, 0 = forever
|
|
51
|
+
*/
|
|
52
|
+
export declare function encodeAnimation(frames: APNGEncodeFrame[], width: number, height: number, plays: number, level: number): Promise<Uint8Array>;
|
|
53
|
+
/**
|
|
54
|
+
* Decodes a PNG into 8-bit RGBA pixel data (for APNGs, the default image)
|
|
55
|
+
* Supports all color types, bit depths, tRNS transparency and adam7 interlacing
|
|
56
|
+
* The orientation comes from the eXIf chunk, or, if there is none, from the Exif text ImageMagick wrote before eXIf
|
|
57
|
+
* existed ("Raw profile type exif") or from the XMP packet
|
|
58
|
+
*/
|
|
59
|
+
export declare function decode(array: Uint8Array): Promise<Decoded>;
|
|
60
|
+
export interface APNGFrame {
|
|
61
|
+
x: number;
|
|
62
|
+
y: number;
|
|
63
|
+
width: number;
|
|
64
|
+
height: number;
|
|
65
|
+
/** milliseconds */
|
|
66
|
+
duration: number;
|
|
67
|
+
/** 0 none, 1 background (transparent), 2 previous */
|
|
68
|
+
dispose: number;
|
|
69
|
+
/** 0 source (replace), 1 over */
|
|
70
|
+
blend: number;
|
|
71
|
+
pixels: Uint8Array;
|
|
72
|
+
}
|
|
73
|
+
/** Whether the PNG is an APNG (has an acTL chunk) */
|
|
74
|
+
export declare function isAnimated(array: Uint8Array): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Decodes an APNG (https://wiki.mozilla.org/APNG_Specification) into its (uncomposited) frames; a plain PNG becomes
|
|
77
|
+
* a single frame
|
|
78
|
+
* @return plays: 0 = forever
|
|
79
|
+
*/
|
|
80
|
+
export declare function decodeAnimation(array: Uint8Array, onlyFirstFrame?: boolean): Promise<{
|
|
81
|
+
width: number;
|
|
82
|
+
height: number;
|
|
83
|
+
plays: number;
|
|
84
|
+
frames: APNGFrame[];
|
|
85
|
+
}>;
|
|
86
|
+
/**
|
|
87
|
+
* Composites APNG frames onto the canvas, as the APNG specification describes (the integer "over" operation of its
|
|
88
|
+
* blend_op section, https://wiki.mozilla.org/APNG_Specification)
|
|
89
|
+
*/
|
|
90
|
+
export declare function compositeAnimation({ width, height, frames }: {
|
|
91
|
+
width: number;
|
|
92
|
+
height: number;
|
|
93
|
+
frames: APNGFrame[];
|
|
94
|
+
}): Array<{
|
|
95
|
+
pixels: Uint8Array;
|
|
96
|
+
duration: number;
|
|
97
|
+
}>;
|