@wasmedia/wimagemagick 0.3.0 → 0.4.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/CHANGELOG.md +65 -1
- package/dist/api.d.ts +4 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +4 -0
- package/dist/api.js.map +1 -1
- package/dist/cli.d.ts +11 -10
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -7
- package/dist/cli.js.map +1 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +34 -1
- package/dist/files.js.map +1 -1
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +19 -0
- package/dist/filesystem.js.map +1 -1
- package/dist/image.d.ts +16 -8
- package/dist/image.d.ts.map +1 -1
- package/dist/image.js +38 -12
- package/dist/image.js.map +1 -1
- package/dist/licenses/README.txt +1 -1
- package/dist/raw.d.ts +28 -6
- package/dist/raw.d.ts.map +1 -1
- package/dist/raw.js +37 -6
- package/dist/raw.js.map +1 -1
- package/dist/wimagemagick.js +1 -1
- package/dist/wimagemagick.wasm +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,69 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.4.0] - 2026-10-04
|
|
11
|
+
|
|
12
|
+
### Security
|
|
13
|
+
- Under Node, reading a PDF, PostScript, EPS or SVG file could start programs
|
|
14
|
+
installed on the host (`gs`, `inkscape`, …) through a shell, because
|
|
15
|
+
ImageMagick's external delegates reached Emscripten's `system()`. The build
|
|
16
|
+
now has a `system()` that never runs anything. PDF/PS reads fail as they
|
|
17
|
+
would on a machine without Ghostscript, and SVG uses the built-in renderer.
|
|
18
|
+
Browsers were not affected.
|
|
19
|
+
- The ImageMagick update below brings in the fixes for 173 GitHub security
|
|
20
|
+
advisories (GHSA) published between April and September 2026, several of
|
|
21
|
+
them in the PNG, JPEG, TIFF, JPEG 2000 and SVG readers.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- Built from ImageMagick 7.1.2-32 (released 2026-09-27). It was pinned to an
|
|
25
|
+
untagged development commit from 2026-04-04, about 900 commits earlier.
|
|
26
|
+
- A DNG now always decodes through LibRaw, whatever it is called: ImageMagick's
|
|
27
|
+
TIFF coder (since 7.1.2-23) spots the DNGVersion tag and hands the file
|
|
28
|
+
over. The other side of this is that a DNG cannot be read as a plain TIFF
|
|
29
|
+
any more, even with an explicit `TIFF:` prefix: the undemosaiced mosaic and
|
|
30
|
+
the embedded preview are out of reach, and `fromBuffer(dng, 'TIFF')` returns
|
|
31
|
+
a `DNG` image. There is no fallback, so a DNG that LibRaw cannot decode here
|
|
32
|
+
(JPEG XL compression from DNG 1.7, GoPro VC-5), or an ordinary TIFF with a
|
|
33
|
+
stray `DNGVersion` tag, now fails however it is read; on 0.3.0, reading
|
|
34
|
+
either as TIFF returned the embedded image.
|
|
35
|
+
- `-draw "image … 'rose:'"` and other `-draw image` primitives that name a
|
|
36
|
+
built-in image or explicit coder (`xc:red`, `png:/path`) now fail with
|
|
37
|
+
`ExplicitCoderNotAllowed`, and so does an SVG whose `<image>` references one
|
|
38
|
+
(ImageMagick's stricter nested reads). Plain file paths still work. A single
|
|
39
|
+
`-draw` with more than 250 nested `image` reads fails with
|
|
40
|
+
`ImageNestedTooDeeply`.
|
|
41
|
+
- `execute()` and `executeFiles()` read an unprefixed input whose bytes are a
|
|
42
|
+
DNG, and whose name is not a raw extension, as `dng:`. ImageMagick's own
|
|
43
|
+
hand-off from the TIFF coder runs ReadImage twice (`-extract 50%` halved the
|
|
44
|
+
image twice, `-comment '%c+X'` gave `+X+X`, `-verbose` reported twice) and
|
|
45
|
+
first copies the whole file into the wasm heap (a 96 MB DNG grew it from 16
|
|
46
|
+
to 116 MiB). Other raws still go by filename.
|
|
47
|
+
- `toBuffer()`, `toBlob()` and `toDataURL()` with no format, on an image whose
|
|
48
|
+
own format cannot be written (any raw, HEIC, …), now say to pass a format
|
|
49
|
+
instead of only `NoEncodeDelegateForThisImageFormat`.
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
- `rotate(degrees, background)`: the colour for the corners a rotation
|
|
53
|
+
uncovers, as any ImageMagick colour string. Also reachable as
|
|
54
|
+
`["rotate", degrees, background]` in a worker `process` message.
|
|
55
|
+
|
|
56
|
+
### Fixed
|
|
57
|
+
- `rotate()` filled the uncovered corners with whatever bytes sat at heap
|
|
58
|
+
address 0 (opaque cyan in 0.3.0), because it passed a null colour. They are
|
|
59
|
+
now transparent unless a background is given.
|
|
60
|
+
- `toDataURL()` labelled JP2, J2K, PNM and other formats
|
|
61
|
+
`application/octet-stream`, which ImageMagick 7.1.2-30+ refuses to read back
|
|
62
|
+
through `inline:`. They now get MIME types that name their coder (`image/jp2`,
|
|
63
|
+
`image/x-j2k`, `image/x-pnm`, `image/x-ppm`, `image/x-pgm`, `image/x-pbm`,
|
|
64
|
+
`image/x-tga`, `image/x-icon`, `image/qoi`, `image/x-psd`), which `toBlob()`
|
|
65
|
+
uses as well.
|
|
66
|
+
- `npm run build:native` failed with "Your local changes … would be
|
|
67
|
+
overwritten by checkout" after changing the ImageMagick pin on a machine
|
|
68
|
+
that had built before; the previous build's regenerated autotools files are
|
|
69
|
+
now discarded before checking out the new commit. A rebuild at the same pin
|
|
70
|
+
leaves the ImageMagick checkout alone, local patches included, and no longer
|
|
71
|
+
needs network access when the pinned commit is already cloned.
|
|
72
|
+
|
|
10
73
|
## [0.3.0] - 2026-10-03
|
|
11
74
|
|
|
12
75
|
### Added
|
|
@@ -248,6 +311,7 @@ First release published to npm, as `@wasmedia/wimagemagick`.
|
|
|
248
311
|
- Convenience C wrappers exported from the WASM module:
|
|
249
312
|
`wimagemagick_identify`, `wimagemagick_convert`, `wimagemagick_resize`.
|
|
250
313
|
|
|
251
|
-
[Unreleased]: https://gitlab.com/wasmedia/wimagemagick/-/compare/v0.
|
|
314
|
+
[Unreleased]: https://gitlab.com/wasmedia/wimagemagick/-/compare/v0.4.0...HEAD
|
|
315
|
+
[0.4.0]: https://gitlab.com/wasmedia/wimagemagick/-/compare/v0.3.0...v0.4.0
|
|
252
316
|
[0.3.0]: https://gitlab.com/wasmedia/wimagemagick/-/compare/v0.2.0...v0.3.0
|
|
253
317
|
[0.2.0]: https://gitlab.com/wasmedia/wimagemagick/-/tags/v0.2.0
|
package/dist/api.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export interface MagickBindings {
|
|
|
11
11
|
NewMagickWand(): number;
|
|
12
12
|
DestroyMagickWand(wand: number): number;
|
|
13
13
|
CloneMagickWand(wand: number): number;
|
|
14
|
+
NewPixelWand(): number;
|
|
15
|
+
DestroyPixelWand(wand: number): number;
|
|
16
|
+
/** Set a colour from any ImageMagick colour string; false if unparseable. */
|
|
17
|
+
PixelSetColor(wand: number, color: string): number;
|
|
14
18
|
MagickReadImage(wand: number, filename: string): number;
|
|
15
19
|
MagickWriteImage(wand: number, filename: string): number;
|
|
16
20
|
MagickReadImageBlob(wand: number, blob: number, length: number): number;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,cAAc;IAE7B,iBAAiB,IAAI,IAAI,CAAC;IAC1B,kBAAkB,IAAI,IAAI,CAAC;IAC3B,aAAa,IAAI,MAAM,CAAC;IACxB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAGtC,YAAY,IAAI,MAAM,CAAC;IACvB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,6EAA6E;IAC7E,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAGnD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACxD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACzD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAG5D,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAG5C,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3D,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAAC;IACV,yBAAyB,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAAC;IACV,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAAC;IAGV,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CAAC;IACV,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CAAC;IAGV,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7E,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAG5C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrE,uBAAuB,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC;IACV,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACxE,sBAAsB,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC;IAGV,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CAAC;IAGV,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACxE,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAGvD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3D,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAGpE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9D,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAG3C,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAG7C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACnE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAGpD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5D,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACzD,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAGnE,kBAAkB,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAAC;IACV,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC;IACV,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC;IAGV,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC;IACV,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC;IACV,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC;CACX;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAsPjE"}
|
package/dist/api.js
CHANGED
|
@@ -14,6 +14,10 @@ export function createBindings(module) {
|
|
|
14
14
|
NewMagickWand: w("NewMagickWand", "number", []),
|
|
15
15
|
DestroyMagickWand: w("DestroyMagickWand", "number", ["number"]),
|
|
16
16
|
CloneMagickWand: w("CloneMagickWand", "number", ["number"]),
|
|
17
|
+
// Pixel wands
|
|
18
|
+
NewPixelWand: w("NewPixelWand", "number", []),
|
|
19
|
+
DestroyPixelWand: w("DestroyPixelWand", "number", ["number"]),
|
|
20
|
+
PixelSetColor: w("PixelSetColor", "number", ["number", "string"]),
|
|
17
21
|
// Read/Write
|
|
18
22
|
MagickReadImage: w("MagickReadImage", "number", ["number", "string"]),
|
|
19
23
|
MagickWriteImage: w("MagickWriteImage", "number", ["number", "string"]),
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -17,12 +17,13 @@ export declare function captureOutput<T>(fn: () => T): {
|
|
|
17
17
|
* Resolve one argument against the working directory, keeping any explicit
|
|
18
18
|
* `FORMAT:` prefix in place.
|
|
19
19
|
*
|
|
20
|
-
* The prefix matters for more than tidiness:
|
|
20
|
+
* The prefix matters for more than tidiness: most raw formats are registered
|
|
21
21
|
* with `ExplicitFormatType`, so ImageMagick will not pick LibRaw from a file's
|
|
22
|
-
* magic bytes — a
|
|
23
|
-
* it. `
|
|
22
|
+
* magic bytes — a CR2 or NEF is a TIFF at that level and the TIFF coder claims
|
|
23
|
+
* it. `cr2:capture` is how the caller says otherwise. An unprefixed input
|
|
24
|
+
* listed in `hints` gets that prefix (see {@link inputFormatHint}).
|
|
24
25
|
*/
|
|
25
|
-
export declare function rewriteArg(arg: string, inputNames: Set<string>, workDir: string): string;
|
|
26
|
+
export declare function rewriteArg(arg: string, inputNames: Set<string>, workDir: string, hints?: ReadonlyMap<string, string>): string;
|
|
26
27
|
/**
|
|
27
28
|
* Parse a command string into an argv array, respecting quoted strings.
|
|
28
29
|
*
|
|
@@ -53,12 +54,12 @@ export interface IdentifyOptions {
|
|
|
53
54
|
/**
|
|
54
55
|
* Format to read the data as, e.g. `"DNG"` or `"CR2"`.
|
|
55
56
|
*
|
|
56
|
-
*
|
|
57
|
-
* `ExplicitFormatType`,
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* is detected by ImageMagick itself.
|
|
57
|
+
* Mostly the raw camera formats need it. Their coder is registered with
|
|
58
|
+
* `ExplicitFormatType`, and apart from DNG and a few fixed-header formats
|
|
59
|
+
* (CR3, RAF, …) ImageMagick does not select it from a file's contents — most
|
|
60
|
+
* raws are TIFF containers, and without a hint the TIFF coder claims them.
|
|
61
|
+
* When omitted, the raws {@link detectRawFormat} recognises are supplied
|
|
62
|
+
* automatically; everything else is detected by ImageMagick itself.
|
|
62
63
|
*/
|
|
63
64
|
format?: string;
|
|
64
65
|
}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA4BxD,+EAA+E;AAC/E,wBAAgB,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC,CAW1E;AAED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,CAAC,EAC7B,EAAE,EAAE,MAAM,CAAC,GACV;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAc9C;AAqED
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA4BxD,+EAA+E;AAC/E,wBAAgB,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC,CAW1E;AAED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,CAAC,EAC7B,EAAE,EAAE,MAAM,CAAC,GACV;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAc9C;AAqED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM,CAYR;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiCtD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC,GACjD,SAAS,CAkDX;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,GAAG,WAAW,EAC9B,OAAO,GAAE,OAAO,GAAG,eAAuB,GACzC,MAAM,CAwBR"}
|
package/dist/cli.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses IM7 syntax: callMain(['input.png', '-resize', '50%', 'output.jpg'])
|
|
6
6
|
*/
|
|
7
7
|
import { createWorkDir, cleanWorkDir, writeToMemFS, readFromMemFS, existsInMemFS, readFilesFromMemFS, } from "./filesystem.js";
|
|
8
|
-
import { detectRawFormat } from "./raw.js";
|
|
8
|
+
import { HINT_HEADER_BYTES, detectRawFormat, inputFormatHint } from "./raw.js";
|
|
9
9
|
let activeSink = null;
|
|
10
10
|
/** Build the `print`/`printErr` pair the loader passes to the WASM factory. */
|
|
11
11
|
export function createOutputHooks() {
|
|
@@ -113,12 +113,13 @@ function isWorkDirFile(arg, inputNames) {
|
|
|
113
113
|
* Resolve one argument against the working directory, keeping any explicit
|
|
114
114
|
* `FORMAT:` prefix in place.
|
|
115
115
|
*
|
|
116
|
-
* The prefix matters for more than tidiness:
|
|
116
|
+
* The prefix matters for more than tidiness: most raw formats are registered
|
|
117
117
|
* with `ExplicitFormatType`, so ImageMagick will not pick LibRaw from a file's
|
|
118
|
-
* magic bytes — a
|
|
119
|
-
* it. `
|
|
118
|
+
* magic bytes — a CR2 or NEF is a TIFF at that level and the TIFF coder claims
|
|
119
|
+
* it. `cr2:capture` is how the caller says otherwise. An unprefixed input
|
|
120
|
+
* listed in `hints` gets that prefix (see {@link inputFormatHint}).
|
|
120
121
|
*/
|
|
121
|
-
export function rewriteArg(arg, inputNames, workDir) {
|
|
122
|
+
export function rewriteArg(arg, inputNames, workDir, hints) {
|
|
122
123
|
const split = splitFormatPrefix(arg);
|
|
123
124
|
if (split !== null) {
|
|
124
125
|
const { prefix, rest } = split;
|
|
@@ -130,7 +131,10 @@ export function rewriteArg(arg, inputNames, workDir) {
|
|
|
130
131
|
return arg;
|
|
131
132
|
return `${prefix}:${workDir}/${rest}`;
|
|
132
133
|
}
|
|
133
|
-
|
|
134
|
+
if (!isWorkDirFile(arg, inputNames))
|
|
135
|
+
return arg;
|
|
136
|
+
const hint = hints?.get(arg);
|
|
137
|
+
return hint ? `${hint}:${workDir}/${arg}` : `${workDir}/${arg}`;
|
|
134
138
|
}
|
|
135
139
|
/**
|
|
136
140
|
* Parse a command string into an argv array, respecting quoted strings.
|
|
@@ -192,16 +196,20 @@ export function execute(module, command, inputFiles) {
|
|
|
192
196
|
const workDir = createWorkDir(module);
|
|
193
197
|
// Track input filenames so we can identify output files later
|
|
194
198
|
const inputNames = new Set();
|
|
199
|
+
const hints = new Map();
|
|
195
200
|
// Write input files to MEMFS
|
|
196
201
|
if (inputFiles) {
|
|
197
202
|
for (const [name, data] of inputFiles) {
|
|
198
203
|
inputNames.add(name);
|
|
199
204
|
const bytes = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
|
|
200
205
|
writeToMemFS(module, `${workDir}/${name}`, bytes);
|
|
206
|
+
const hint = inputFormatHint(name, bytes.subarray(0, HINT_HEADER_BYTES));
|
|
207
|
+
if (hint)
|
|
208
|
+
hints.set(name, hint);
|
|
201
209
|
}
|
|
202
210
|
}
|
|
203
211
|
// Rewrite filename arguments to workDir paths
|
|
204
|
-
const rewrittenArgs = args.map((arg) => rewriteArg(arg, inputNames, workDir));
|
|
212
|
+
const rewrittenArgs = args.map((arg) => rewriteArg(arg, inputNames, workDir, hints));
|
|
205
213
|
// Execute with output captured
|
|
206
214
|
let exitCode;
|
|
207
215
|
let stdout = "";
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC;CACrC;AAED,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,yBAAyB,GAAG,MAAM,CAAC;AAE3D,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,SAAS,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACnC;AAKD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CA2ExB"}
|
package/dist/files.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* encoded inputs and outputs no longer sit in memory beside it.
|
|
11
11
|
*/
|
|
12
12
|
import { captureOutput, parseCommand, rewriteArg } from "./cli.js";
|
|
13
|
+
import { HINT_HEADER_BYTES, inputFormatHint } from "./raw.js";
|
|
13
14
|
import { loadWopfs } from "./wopfs.js";
|
|
14
15
|
const HEADROOM = 8;
|
|
15
16
|
let mountCounter = 0;
|
|
@@ -50,7 +51,14 @@ export async function executeFiles(module, command, inputs, options) {
|
|
|
50
51
|
}
|
|
51
52
|
const args = typeof command === "string" ? parseCommand(command) : command;
|
|
52
53
|
const mountpoint = `/files_${++mountCounter}_${Date.now()}`;
|
|
53
|
-
const
|
|
54
|
+
const hints = new Map();
|
|
55
|
+
for (const input of inputs) {
|
|
56
|
+
const header = await readHeader(input.file);
|
|
57
|
+
const hint = header && inputFormatHint(input.name, header);
|
|
58
|
+
if (hint)
|
|
59
|
+
hints.set(input.name, hint);
|
|
60
|
+
}
|
|
61
|
+
const rewritten = args.map((arg) => rewriteArg(arg, names, mountpoint, hints));
|
|
54
62
|
const outputs = args.filter((arg, i) => rewritten[i] !== arg && !names.has(stripPrefix(arg))).length;
|
|
55
63
|
const wopfs = await loadWopfs(options.wopfsPath);
|
|
56
64
|
const mount = await wopfs.mountFiles(module, mountpoint, {
|
|
@@ -106,6 +114,31 @@ export async function executeFiles(module, command, inputs, options) {
|
|
|
106
114
|
written,
|
|
107
115
|
};
|
|
108
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* The first bytes of an input, for {@link inputFormatHint}, or `undefined` if
|
|
119
|
+
* they cannot be read; ImageMagick then reports the problem when it opens it.
|
|
120
|
+
*/
|
|
121
|
+
async function readHeader(file) {
|
|
122
|
+
try {
|
|
123
|
+
if (typeof file === "string") {
|
|
124
|
+
const { open } = await import("node:fs/promises");
|
|
125
|
+
const handle = await open(file, "r");
|
|
126
|
+
try {
|
|
127
|
+
const buffer = new Uint8Array(HINT_HEADER_BYTES);
|
|
128
|
+
const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
|
|
129
|
+
return buffer.subarray(0, bytesRead);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
await handle.close();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const blob = await file.getFile();
|
|
136
|
+
return new Uint8Array(await blob.slice(0, HINT_HEADER_BYTES).arrayBuffer());
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
109
142
|
/** `png:out.png` → `out.png`; anything without a format prefix is unchanged. */
|
|
110
143
|
function stripPrefix(arg) {
|
|
111
144
|
const m = /^[A-Za-z][A-Za-z0-9+-]*:(.+)$/.exec(arg);
|
package/dist/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,SAAS,EAA2B,MAAM,YAAY,CAAC;AAkDhE,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAkB,EAClB,OAA0B,EAC1B,MAAmB,EACnB,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,MAAM,UAAU,GAAG,UAAU,EAAE,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,SAAS,EAA2B,MAAM,YAAY,CAAC;AAkDhE,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAkB,EAClB,OAA0B,EAC1B,MAAmB,EACnB,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,MAAM,UAAU,GAAG,UAAU,EAAE,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACjE,CAAC,MAAM,CAAC;IAET,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE;QACvD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,GAAG,QAAQ;QAC9C,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,IAAI,QAAgB,CAAC;IACrB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC/C,6EAA6E;IAC7E,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;YACrB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACpB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,QAAQ,GAAG,CAAC,CAAC;YACb,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,+DAA+D;QAC/D,+BAA+B;QAC/B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,IAAI,CAAC;QACd,MAAM,CAAC,CAAC;IACV,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;QACxB,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,IAAuB;IAC/C,IAAI,CAAC;QACH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACrE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACvC,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAC1B,IAAwB,EACxB,SAAoB;IAEpB,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAChF,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACpF,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC1B,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,GAAG,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,4EAA4E;gBAC1E,wDAAwD,CAC3D,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAC/C,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC;QAC5D,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;AACzF,CAAC"}
|
package/dist/filesystem.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAIxD;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBlE;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,IAAI,CAGN;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,UAAU,CAEZ;AAED,uCAAuC;AACvC,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAOT;AAED,gCAAgC;AAChC,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,IAAI,CAMN;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC,GAC3C,IAAI,CAIN;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAqBzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,UAAU,CAIZ;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,MAAM,CAKR;AAED,sCAAsC;AACtC,wBAAgB,MAAM,CACpB,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,MAAmC,GAC5C,IAAI,CAEN;AAED,0CAA0C;AAC1C,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKpE;
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAIxD;AAED,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBlE;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,IAAI,CAGN;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,UAAU,CAEZ;AAED,uCAAuC;AACvC,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAOT;AAED,gCAAgC;AAChC,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,IAAI,CAMN;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC,GAC3C,IAAI,CAIN;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAqBzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,UAAU,CAIZ;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,MAAM,CAKR;AAED,sCAAsC;AACtC,wBAAgB,MAAM,CACpB,IAAI,EAAE,UAAU,EAChB,QAAQ,GAAE,MAAmC,GAC5C,IAAI,CAEN;AAED,0CAA0C;AAC1C,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKpE;AAoCD,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
package/dist/filesystem.js
CHANGED
|
@@ -121,6 +121,15 @@ export function toDataURL(data, mimeType) {
|
|
|
121
121
|
return `data:${mimeType};base64,${btoa(binary)}`;
|
|
122
122
|
}
|
|
123
123
|
/** Map of common format names to MIME types. */
|
|
124
|
+
/**
|
|
125
|
+
* MIME types by ImageMagick format name.
|
|
126
|
+
*
|
|
127
|
+
* Since 7.1.2-30, `inline:` only accepts a data URI whose subtype, minus any
|
|
128
|
+
* `x-` and `+suffix`, names an explicit coder. So a `toDataURL()` result only
|
|
129
|
+
* reads back if its type does: `image/jp2` does, as do the short `x-` names
|
|
130
|
+
* used below where the IANA-style ones (`image/x-portable-anymap`,
|
|
131
|
+
* `image/vnd.adobe.photoshop`) do not.
|
|
132
|
+
*/
|
|
124
133
|
const FORMAT_MIME_MAP = {
|
|
125
134
|
JPEG: "image/jpeg",
|
|
126
135
|
JPG: "image/jpeg",
|
|
@@ -133,6 +142,16 @@ const FORMAT_MIME_MAP = {
|
|
|
133
142
|
HEIC: "image/heic",
|
|
134
143
|
JXL: "image/jxl",
|
|
135
144
|
SVG: "image/svg+xml",
|
|
145
|
+
JP2: "image/jp2",
|
|
146
|
+
J2K: "image/x-j2k",
|
|
147
|
+
PNM: "image/x-pnm",
|
|
148
|
+
PPM: "image/x-ppm",
|
|
149
|
+
PGM: "image/x-pgm",
|
|
150
|
+
PBM: "image/x-pbm",
|
|
151
|
+
TGA: "image/x-tga",
|
|
152
|
+
ICO: "image/x-icon",
|
|
153
|
+
QOI: "image/qoi",
|
|
154
|
+
PSD: "image/x-psd",
|
|
136
155
|
};
|
|
137
156
|
/** Get MIME type for an image format. */
|
|
138
157
|
export function getMimeType(format) {
|
package/dist/filesystem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,MAAM,GAAG,GAAG,SAAS,EAAE,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACtD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,MAAkB,EAAE,GAAW;IAC1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAC1B,MAAkB,EAClB,IAAY,EACZ,IAA8B;IAE9B,MAAM,KAAK,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,IAAY;IAEZ,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,GAAW,EACX,KAA4C;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACjC,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAChC,MAAkB,EAClB,GAAW,EACX,OAAqB;IAErB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC9C,IAAI,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAClC,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAkB,EAClB,GAAW,EACX,MAAc;IAEd,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,MAAkB,EAClB,IAA8B;IAE9B,MAAM,KAAK,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,MAAM,CACpB,IAAgB,EAChB,WAAmB,0BAA0B;IAE7C,OAAO,IAAI,IAAI,CAAC,CAAC,IAA2B,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,SAAS,CAAC,IAAgB,EAAE,QAAgB;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAClC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,QAAQ,QAAQ,WAAW,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,gDAAgD;AAChD,MAAM,eAAe,GAA2B;IAC9C,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,MAAM,GAAG,GAAG,SAAS,EAAE,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACtD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,MAAkB,EAAE,GAAW;IAC1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC9C,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAC1B,MAAkB,EAClB,IAAY,EACZ,IAA8B;IAE9B,MAAM,KAAK,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,IAAY;IAEZ,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,GAAW,EACX,KAA4C;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACjC,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAChC,MAAkB,EAClB,GAAW,EACX,OAAqB;IAErB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI;gBAAE,SAAS;YAC9C,IAAI,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAClC,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAkB,EAClB,GAAW,EACX,MAAc;IAEd,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,MAAkB,EAClB,IAA8B;IAE9B,MAAM,KAAK,GAAG,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,MAAM,CACpB,IAAgB,EAChB,WAAmB,0BAA0B;IAE7C,OAAO,IAAI,IAAI,CAAC,CAAC,IAA2B,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,SAAS,CAAC,IAAgB,EAAE,QAAgB;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAClC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,QAAQ,QAAQ,WAAW,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,gDAAgD;AAChD;;;;;;;;GAQG;AACH,MAAM,eAAe,GAA2B;IAC9C,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,aAAa;CACnB,CAAC;AAEF,yCAAyC;AACzC,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,0BAA0B,CAAC;AAC7E,CAAC"}
|
package/dist/image.d.ts
CHANGED
|
@@ -22,12 +22,14 @@ export declare class WMagickImage {
|
|
|
22
22
|
* Create a WMagickImage from a Uint8Array or ArrayBuffer.
|
|
23
23
|
*
|
|
24
24
|
* @param data - The encoded image
|
|
25
|
-
* @param format - Format to read the data as, e.g. `'
|
|
26
|
-
*
|
|
27
|
-
* `ExplicitFormatType` and does not accept blobs, so
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* supplied automatically; pass it for any other raw.
|
|
25
|
+
* @param format - Format to read the data as, e.g. `'PEF'` or `'ARW'`.
|
|
26
|
+
* Mostly the raw camera formats need it: their coder is registered with
|
|
27
|
+
* `ExplicitFormatType` and does not accept blobs, so apart from DNG and a
|
|
28
|
+
* few fixed-header formats ImageMagick will not reach LibRaw from a buffer
|
|
29
|
+
* alone. When omitted, the raw formats {@link detectRawFormat} recognises
|
|
30
|
+
* are supplied automatically; pass it for any other raw. An explicit
|
|
31
|
+
* format wins, except that ImageMagick reads a DNG as DNG even when asked
|
|
32
|
+
* for TIFF.
|
|
31
33
|
*/
|
|
32
34
|
static fromBuffer(data: Uint8Array | ArrayBuffer, format?: string): WMagickImage;
|
|
33
35
|
/**
|
|
@@ -69,8 +71,14 @@ export declare class WMagickImage {
|
|
|
69
71
|
crop(width: number, height: number, x?: number, y?: number): this;
|
|
70
72
|
/** Extend the image canvas. */
|
|
71
73
|
extent(width: number, height: number, x?: number, y?: number): this;
|
|
72
|
-
/**
|
|
73
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Rotate the image clockwise by the specified degrees.
|
|
76
|
+
*
|
|
77
|
+
* @param background - Fill for the corners a rotation that is not a multiple
|
|
78
|
+
* of 90 uncovers, as any ImageMagick colour (`'white'`, `'#ff000080'`, …).
|
|
79
|
+
* Transparent by default; formats without alpha (JPEG) write that as black.
|
|
80
|
+
*/
|
|
81
|
+
rotate(degrees: number, background?: string): this;
|
|
74
82
|
/** Flip the image vertically. */
|
|
75
83
|
flip(): this;
|
|
76
84
|
/** Flop the image horizontally. */
|
package/dist/image.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAW/E;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAIxD;AA2BD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;IAIP,gEAAgE;IAChE,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,OAAO,CAAC,WAAW;IAMnB
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"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"}
|
package/dist/image.js
CHANGED
|
@@ -62,12 +62,14 @@ export class WMagickImage {
|
|
|
62
62
|
* Create a WMagickImage from a Uint8Array or ArrayBuffer.
|
|
63
63
|
*
|
|
64
64
|
* @param data - The encoded image
|
|
65
|
-
* @param format - Format to read the data as, e.g. `'
|
|
66
|
-
*
|
|
67
|
-
* `ExplicitFormatType` and does not accept blobs, so
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* supplied automatically; pass it for any other raw.
|
|
65
|
+
* @param format - Format to read the data as, e.g. `'PEF'` or `'ARW'`.
|
|
66
|
+
* Mostly the raw camera formats need it: their coder is registered with
|
|
67
|
+
* `ExplicitFormatType` and does not accept blobs, so apart from DNG and a
|
|
68
|
+
* few fixed-header formats ImageMagick will not reach LibRaw from a buffer
|
|
69
|
+
* alone. When omitted, the raw formats {@link detectRawFormat} recognises
|
|
70
|
+
* are supplied automatically; pass it for any other raw. An explicit
|
|
71
|
+
* format wins, except that ImageMagick reads a DNG as DNG even when asked
|
|
72
|
+
* for TIFF.
|
|
71
73
|
*/
|
|
72
74
|
static fromBuffer(data, format) {
|
|
73
75
|
const api = getBindings();
|
|
@@ -227,12 +229,26 @@ export class WMagickImage {
|
|
|
227
229
|
checkError(api, this._wand, "extent");
|
|
228
230
|
return this;
|
|
229
231
|
}
|
|
230
|
-
/**
|
|
231
|
-
|
|
232
|
+
/**
|
|
233
|
+
* Rotate the image clockwise by the specified degrees.
|
|
234
|
+
*
|
|
235
|
+
* @param background - Fill for the corners a rotation that is not a multiple
|
|
236
|
+
* of 90 uncovers, as any ImageMagick colour (`'white'`, `'#ff000080'`, …).
|
|
237
|
+
* Transparent by default; formats without alpha (JPEG) write that as black.
|
|
238
|
+
*/
|
|
239
|
+
rotate(degrees, background = "transparent") {
|
|
232
240
|
this.ensureAlive();
|
|
233
241
|
const api = getBindings();
|
|
234
|
-
|
|
235
|
-
|
|
242
|
+
const fill = api.NewPixelWand();
|
|
243
|
+
try {
|
|
244
|
+
if (!api.PixelSetColor(fill, background)) {
|
|
245
|
+
throw new Error(`rotate failed: unrecognised colour ${JSON.stringify(background)}`);
|
|
246
|
+
}
|
|
247
|
+
api.MagickRotateImage(this._wand, fill, degrees);
|
|
248
|
+
}
|
|
249
|
+
finally {
|
|
250
|
+
api.DestroyPixelWand(fill);
|
|
251
|
+
}
|
|
236
252
|
checkError(api, this._wand, "rotate");
|
|
237
253
|
return this;
|
|
238
254
|
}
|
|
@@ -377,8 +393,18 @@ export class WMagickImage {
|
|
|
377
393
|
const blobSize = module.getValue(sizePtr, "i32");
|
|
378
394
|
module._free(sizePtr);
|
|
379
395
|
if (!blobPtr || blobSize <= 0) {
|
|
380
|
-
|
|
381
|
-
|
|
396
|
+
try {
|
|
397
|
+
checkError(api, this._wand, "toBuffer");
|
|
398
|
+
throw new Error("Failed to export image");
|
|
399
|
+
}
|
|
400
|
+
catch (e) {
|
|
401
|
+
// With no format, ImageMagick writes the image's own: for a raw
|
|
402
|
+
// camera image (and HEIC, EXR, ...) there is no encoder for it.
|
|
403
|
+
if (format)
|
|
404
|
+
throw e;
|
|
405
|
+
throw new Error(`${e.message} — ${this.format} cannot be written; ` +
|
|
406
|
+
`pass a format, e.g. toBuffer('PNG')`);
|
|
407
|
+
}
|
|
382
408
|
}
|
|
383
409
|
const result = copyFromHeap(module, blobPtr, blobSize);
|
|
384
410
|
api.MagickRelinquishMemory(blobPtr);
|