@imagemagick/magick-wasm 0.0.5 → 0.0.9
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/NOTICE +3278 -0
- package/README.md +5 -5
- package/filter-type.d.ts +34 -0
- package/filter-type.js +38 -0
- package/gravity.js +35 -1
- package/image-magick.d.ts +9 -0
- package/image-magick.js +30 -4
- package/internal/exception/exception.js +17 -10
- package/internal/native-instance.js +3 -2
- package/magick-color.js +3 -2
- package/magick-error-severity.d.ts +25 -0
- package/magick-error-severity.js +29 -0
- package/magick-error.d.ts +6 -0
- package/magick-error.js +12 -0
- package/magick-format-info.js +2 -2
- package/magick-format.d.ts +1 -0
- package/magick-format.js +1 -0
- package/magick-geometry.js +5 -4
- package/magick-image-collection.d.ts +9 -0
- package/magick-image-collection.js +54 -9
- package/magick-image.d.ts +36 -0
- package/magick-image.js +97 -18
- package/magick.d.ts +1 -0
- package/magick.js +13 -3
- package/package.json +15 -15
- package/pixel-interpolate-method.d.ts +14 -0
- package/pixel-interpolate-method.js +18 -0
- package/pixels/pixel-collection.js +2 -2
- package/settings/magick-read-settings.js +3 -8
- package/settings/magick-settings.d.ts +8 -1
- package/settings/magick-settings.js +9 -43
- package/{internal/exception/exception-severity.d.ts → settings/native-magick-settings.d.ts} +0 -0
- package/settings/native-magick-settings.js +58 -0
- package/wasm/magick.js +6 -7
- package/internal/exception/exception-severity.js +0 -53
package/README.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
## The WebAssembly library for ImageMagick:
|
|
1
|
+
## The WebAssembly library for ImageMagick: magick-wasm
|
|
2
2
|
|
|
3
|
-
[](https://raw.githubusercontent.com/dlemstra/
|
|
3
|
+
[](https://raw.githubusercontent.com/dlemstra/magick-wasm/main/license.txt)
|
|
4
4
|
[](https://twitter.com/MagickNET)
|
|
5
5
|
[](https://github.com/sponsors/dlemstra)
|
|
6
6
|
|
|
7
7
|
ImageMagick is a powerful image manipulation library that supports over [100 major file formats](https://www.imagemagick.org/script/formats.php) (not including sub-formats).
|
|
8
|
-
With
|
|
8
|
+
With magick-wasm you can use ImageMagick in your web application without doing a callback to an api.
|
|
9
9
|
|
|
10
10
|
## Documentation
|
|
11
11
|
|
|
12
|
-
For examples on how to use
|
|
12
|
+
For examples on how to use magick-wasm view the [demo.ts](https://github.com/dlemstra/magick-wasm/blob/main/demo/demo.ts).
|
|
13
13
|
For more information about ImageMagick go to: [http://www.imagemagick.org/](http://www.imagemagick.org/).
|
|
14
14
|
|
|
15
15
|
## Release notes
|
|
16
16
|
|
|
17
|
-
The release notes can be found on [GitHub](https://github.com/dlemstra/
|
|
17
|
+
The release notes can be found on [GitHub](https://github.com/dlemstra/magick-wasm/releases/tag/0.0.9).
|
package/filter-type.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare enum FilterType {
|
|
2
|
+
Undefined = 0,
|
|
3
|
+
Point = 1,
|
|
4
|
+
Box = 2,
|
|
5
|
+
Triangle = 3,
|
|
6
|
+
Hermite = 4,
|
|
7
|
+
Hann = 5,
|
|
8
|
+
Hamming = 6,
|
|
9
|
+
Blackman = 7,
|
|
10
|
+
Gaussian = 8,
|
|
11
|
+
Quadratic = 9,
|
|
12
|
+
Cubic = 10,
|
|
13
|
+
Catrom = 11,
|
|
14
|
+
Mitchell = 12,
|
|
15
|
+
Jinc = 13,
|
|
16
|
+
Sinc = 14,
|
|
17
|
+
SincFast = 15,
|
|
18
|
+
Kaiser = 16,
|
|
19
|
+
Welch = 17,
|
|
20
|
+
Parzen = 18,
|
|
21
|
+
Bohman = 19,
|
|
22
|
+
Bartlett = 20,
|
|
23
|
+
Lagrange = 21,
|
|
24
|
+
Lanczos = 22,
|
|
25
|
+
LanczosSharp = 23,
|
|
26
|
+
Lanczos2 = 24,
|
|
27
|
+
Lanczos2Sharp = 25,
|
|
28
|
+
Robidoux = 26,
|
|
29
|
+
RobidouxSharp = 27,
|
|
30
|
+
Cosine = 28,
|
|
31
|
+
Spline = 29,
|
|
32
|
+
LanczosRadius = 30,
|
|
33
|
+
CubicSpline = 31
|
|
34
|
+
}
|
package/filter-type.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FilterType = void 0;
|
|
4
|
+
var FilterType;
|
|
5
|
+
(function (FilterType) {
|
|
6
|
+
FilterType[FilterType["Undefined"] = 0] = "Undefined";
|
|
7
|
+
FilterType[FilterType["Point"] = 1] = "Point";
|
|
8
|
+
FilterType[FilterType["Box"] = 2] = "Box";
|
|
9
|
+
FilterType[FilterType["Triangle"] = 3] = "Triangle";
|
|
10
|
+
FilterType[FilterType["Hermite"] = 4] = "Hermite";
|
|
11
|
+
FilterType[FilterType["Hann"] = 5] = "Hann";
|
|
12
|
+
FilterType[FilterType["Hamming"] = 6] = "Hamming";
|
|
13
|
+
FilterType[FilterType["Blackman"] = 7] = "Blackman";
|
|
14
|
+
FilterType[FilterType["Gaussian"] = 8] = "Gaussian";
|
|
15
|
+
FilterType[FilterType["Quadratic"] = 9] = "Quadratic";
|
|
16
|
+
FilterType[FilterType["Cubic"] = 10] = "Cubic";
|
|
17
|
+
FilterType[FilterType["Catrom"] = 11] = "Catrom";
|
|
18
|
+
FilterType[FilterType["Mitchell"] = 12] = "Mitchell";
|
|
19
|
+
FilterType[FilterType["Jinc"] = 13] = "Jinc";
|
|
20
|
+
FilterType[FilterType["Sinc"] = 14] = "Sinc";
|
|
21
|
+
FilterType[FilterType["SincFast"] = 15] = "SincFast";
|
|
22
|
+
FilterType[FilterType["Kaiser"] = 16] = "Kaiser";
|
|
23
|
+
FilterType[FilterType["Welch"] = 17] = "Welch";
|
|
24
|
+
FilterType[FilterType["Parzen"] = 18] = "Parzen";
|
|
25
|
+
FilterType[FilterType["Bohman"] = 19] = "Bohman";
|
|
26
|
+
FilterType[FilterType["Bartlett"] = 20] = "Bartlett";
|
|
27
|
+
FilterType[FilterType["Lagrange"] = 21] = "Lagrange";
|
|
28
|
+
FilterType[FilterType["Lanczos"] = 22] = "Lanczos";
|
|
29
|
+
FilterType[FilterType["LanczosSharp"] = 23] = "LanczosSharp";
|
|
30
|
+
FilterType[FilterType["Lanczos2"] = 24] = "Lanczos2";
|
|
31
|
+
FilterType[FilterType["Lanczos2Sharp"] = 25] = "Lanczos2Sharp";
|
|
32
|
+
FilterType[FilterType["Robidoux"] = 26] = "Robidoux";
|
|
33
|
+
FilterType[FilterType["RobidouxSharp"] = 27] = "RobidouxSharp";
|
|
34
|
+
FilterType[FilterType["Cosine"] = 28] = "Cosine";
|
|
35
|
+
FilterType[FilterType["Spline"] = 29] = "Spline";
|
|
36
|
+
FilterType[FilterType["LanczosRadius"] = 30] = "LanczosRadius";
|
|
37
|
+
FilterType[FilterType["CubicSpline"] = 31] = "CubicSpline";
|
|
38
|
+
})(FilterType = exports.FilterType || (exports.FilterType = {}));
|
package/gravity.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Gravity = void 0;
|
|
3
|
+
exports._getEdges = exports.Gravity = void 0;
|
|
4
4
|
var Gravity;
|
|
5
5
|
(function (Gravity) {
|
|
6
6
|
Gravity[Gravity["Undefined"] = 0] = "Undefined";
|
|
@@ -15,3 +15,37 @@ var Gravity;
|
|
|
15
15
|
Gravity[Gravity["South"] = 8] = "South";
|
|
16
16
|
Gravity[Gravity["Southeast"] = 9] = "Southeast";
|
|
17
17
|
})(Gravity = exports.Gravity || (exports.Gravity = {}));
|
|
18
|
+
function* _getEdges(gravities) {
|
|
19
|
+
for (const gravity of gravities) {
|
|
20
|
+
switch (gravity) {
|
|
21
|
+
case Gravity.North:
|
|
22
|
+
yield 'north';
|
|
23
|
+
break;
|
|
24
|
+
case Gravity.Northeast:
|
|
25
|
+
yield 'north';
|
|
26
|
+
yield 'east';
|
|
27
|
+
break;
|
|
28
|
+
case Gravity.Northwest:
|
|
29
|
+
yield 'north';
|
|
30
|
+
yield 'west';
|
|
31
|
+
break;
|
|
32
|
+
case Gravity.East:
|
|
33
|
+
yield 'east';
|
|
34
|
+
break;
|
|
35
|
+
case Gravity.West:
|
|
36
|
+
yield 'west';
|
|
37
|
+
break;
|
|
38
|
+
case Gravity.South:
|
|
39
|
+
yield 'south';
|
|
40
|
+
break;
|
|
41
|
+
case Gravity.Southeast:
|
|
42
|
+
yield 'south';
|
|
43
|
+
yield 'east';
|
|
44
|
+
break;
|
|
45
|
+
case Gravity.Southwest:
|
|
46
|
+
yield 'south';
|
|
47
|
+
yield 'west';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports._getEdges = _getEdges;
|
package/image-magick.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IMagickImage } from './magick-image';
|
|
2
|
+
import { IMagickImageCollection } from './magick-image-collection';
|
|
2
3
|
import { MagickColor } from './magick-color';
|
|
3
4
|
import { MagickReadSettings } from './settings/magick-read-settings';
|
|
4
5
|
export declare class ImageMagick {
|
|
@@ -16,6 +17,14 @@ export declare class ImageMagick {
|
|
|
16
17
|
static read(fileName: string, settings: MagickReadSettings, func: (image: IMagickImage) => Promise<void>): Promise<void>;
|
|
17
18
|
static read(array: Uint8Array, settings: MagickReadSettings, func: (image: IMagickImage) => void): void;
|
|
18
19
|
static read(array: Uint8Array, settings: MagickReadSettings, func: (image: IMagickImage) => Promise<void>): Promise<void>;
|
|
20
|
+
static readCollection(fileName: string, func: (images: IMagickImageCollection) => void): void;
|
|
21
|
+
static readCollection(fileName: string, func: (images: IMagickImageCollection) => Promise<void>): Promise<void>;
|
|
22
|
+
static readCollection(array: Uint8Array, func: (images: IMagickImageCollection) => void): void;
|
|
23
|
+
static readCollection(array: Uint8Array, func: (image: IMagickImageCollection) => Promise<void>): Promise<void>;
|
|
24
|
+
static readCollection(fileName: string, settings: MagickReadSettings, func: (images: IMagickImageCollection) => void): void;
|
|
25
|
+
static readCollection(fileName: string, settings: MagickReadSettings, func: (images: IMagickImageCollection) => Promise<void>): Promise<void>;
|
|
26
|
+
static readCollection(array: Uint8Array, settings: MagickReadSettings, func: (images: IMagickImageCollection) => void): void;
|
|
27
|
+
static readCollection(array: Uint8Array, settings: MagickReadSettings, func: (images: IMagickImageCollection) => Promise<void>): Promise<void>;
|
|
19
28
|
static readFromCanvas(canvas: HTMLCanvasElement, func: (image: IMagickImage) => void): void;
|
|
20
29
|
static readFromCanvas(canvas: HTMLCanvasElement, func: (image: IMagickImage) => Promise<void>): Promise<void>;
|
|
21
30
|
}
|
package/image-magick.js
CHANGED
|
@@ -15,15 +15,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.initializeImageMagick = exports.ImageMagick = void 0;
|
|
16
16
|
const magick_js_1 = __importDefault(require("./wasm/magick.js"));
|
|
17
17
|
const magick_image_1 = require("./magick-image");
|
|
18
|
+
const magick_image_collection_1 = require("./magick-image-collection");
|
|
18
19
|
const magick_color_1 = require("./magick-color");
|
|
20
|
+
const magick_error_1 = require("./magick-error");
|
|
19
21
|
const magick_read_settings_1 = require("./settings/magick-read-settings");
|
|
20
22
|
const string_1 = require("./internal/native/string");
|
|
21
23
|
class ImageMagick {
|
|
22
24
|
constructor() {
|
|
23
25
|
this.loader = new Promise(resolve => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
if (this.api !== undefined) {
|
|
27
|
+
resolve();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
(0, magick_js_1.default)().then(api => {
|
|
31
|
+
(0, string_1._withNativeString)(api, 'MAGICK_CONFIGURE_PATH', name => {
|
|
32
|
+
(0, string_1._withNativeString)(api, '/xml', value => {
|
|
27
33
|
api._Environment_SetEnv(name, value);
|
|
28
34
|
this.api = api;
|
|
29
35
|
});
|
|
@@ -37,7 +43,7 @@ class ImageMagick {
|
|
|
37
43
|
}
|
|
38
44
|
static get _api() {
|
|
39
45
|
if (instance.api === undefined)
|
|
40
|
-
throw new
|
|
46
|
+
throw new magick_error_1.MagickError('`await initializeImageMagick` should be called to initialize the library');
|
|
41
47
|
return instance.api;
|
|
42
48
|
}
|
|
43
49
|
static set _api(value) {
|
|
@@ -69,6 +75,26 @@ class ImageMagick {
|
|
|
69
75
|
}
|
|
70
76
|
});
|
|
71
77
|
}
|
|
78
|
+
static readCollection(fileNameOrArray, funcOrSettings, func) {
|
|
79
|
+
const collection = magick_image_collection_1.MagickImageCollection.create();
|
|
80
|
+
return collection._use(images => {
|
|
81
|
+
if (funcOrSettings instanceof magick_read_settings_1.MagickReadSettings) {
|
|
82
|
+
if (typeof fileNameOrArray === 'string')
|
|
83
|
+
images.read(fileNameOrArray, funcOrSettings);
|
|
84
|
+
else
|
|
85
|
+
images.read(fileNameOrArray, funcOrSettings);
|
|
86
|
+
if (func !== undefined)
|
|
87
|
+
return func(images);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
if (typeof fileNameOrArray === 'string')
|
|
91
|
+
images.read(fileNameOrArray);
|
|
92
|
+
else
|
|
93
|
+
images.read(fileNameOrArray);
|
|
94
|
+
return funcOrSettings(images);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
72
98
|
static readFromCanvas(canvas, func) {
|
|
73
99
|
return magick_image_1.MagickImage._use(image => {
|
|
74
100
|
image.readFromCanvas(canvas);
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Exception = void 0;
|
|
4
4
|
const image_magick_1 = require("../../image-magick");
|
|
5
|
-
const
|
|
5
|
+
const magick_error_1 = require("../../magick-error");
|
|
6
|
+
const magick_error_severity_1 = require("../../magick-error-severity");
|
|
6
7
|
const pointer_1 = require("../pointer/pointer");
|
|
7
8
|
const string_1 = require("../native/string");
|
|
8
9
|
class Exception {
|
|
@@ -11,7 +12,7 @@ class Exception {
|
|
|
11
12
|
}
|
|
12
13
|
get ptr() { return this.pointer.ptr; }
|
|
13
14
|
check(success, error) {
|
|
14
|
-
if (
|
|
15
|
+
if (this.isError())
|
|
15
16
|
return error();
|
|
16
17
|
return success();
|
|
17
18
|
}
|
|
@@ -30,28 +31,34 @@ class Exception {
|
|
|
30
31
|
static checkException(exception, result) {
|
|
31
32
|
if (!Exception.isRaised(exception))
|
|
32
33
|
return result;
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
const severity = Exception.getErrorSeverity(exception);
|
|
35
|
+
if (severity >= magick_error_severity_1.MagickErrorSeverity.Error)
|
|
36
|
+
Exception.throw(exception, severity);
|
|
35
37
|
else
|
|
36
38
|
Exception.dispose(exception);
|
|
37
39
|
return result;
|
|
38
40
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
isError() {
|
|
42
|
+
if (!Exception.isRaised(this.pointer))
|
|
43
|
+
return false;
|
|
44
|
+
const severity = Exception.getErrorSeverity(this.pointer);
|
|
45
|
+
return severity >= magick_error_severity_1.MagickErrorSeverity.Error;
|
|
46
|
+
}
|
|
47
|
+
static getErrorSeverity(exception) {
|
|
48
|
+
return image_magick_1.ImageMagick._api._MagickExceptionHelper_Severity(exception.value);
|
|
42
49
|
}
|
|
43
50
|
static isRaised(exception) {
|
|
44
51
|
return exception.value !== 0;
|
|
45
52
|
}
|
|
46
|
-
static throw(exception) {
|
|
53
|
+
static throw(exception, severity) {
|
|
47
54
|
const errorMessage = Exception.getMessage(exception);
|
|
48
55
|
Exception.dispose(exception);
|
|
49
|
-
throw new
|
|
56
|
+
throw new magick_error_1.MagickError(errorMessage, severity);
|
|
50
57
|
}
|
|
51
58
|
static getMessage(exception) {
|
|
52
59
|
const message = image_magick_1.ImageMagick._api._MagickExceptionHelper_Message(exception.value);
|
|
53
60
|
const description = image_magick_1.ImageMagick._api._MagickExceptionHelper_Description(exception.value);
|
|
54
|
-
let errorMessage = string_1._createString(message, 'Unknown error');
|
|
61
|
+
let errorMessage = (0, string_1._createString)(message, 'Unknown error');
|
|
55
62
|
if (description !== 0) {
|
|
56
63
|
errorMessage += `(${image_magick_1.ImageMagick._api.UTF8ToString(description)})`;
|
|
57
64
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NativeInstance = void 0;
|
|
4
|
+
const magick_error_1 = require("../magick-error");
|
|
4
5
|
class NativeInstance {
|
|
5
6
|
constructor(instance, disposeMethod) {
|
|
6
7
|
this.instance = instance;
|
|
@@ -11,7 +12,7 @@ class NativeInstance {
|
|
|
11
12
|
return this.instance;
|
|
12
13
|
if (this.instance === -1)
|
|
13
14
|
this._instanceNotInitialized();
|
|
14
|
-
throw new
|
|
15
|
+
throw new magick_error_1.MagickError('instance is disposed');
|
|
15
16
|
}
|
|
16
17
|
set _instance(instance) {
|
|
17
18
|
this.disposeInstance(this.instance);
|
|
@@ -29,7 +30,7 @@ class NativeInstance {
|
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
_instanceNotInitialized() {
|
|
32
|
-
throw new
|
|
33
|
+
throw new magick_error_1.MagickError('instance is not initialized');
|
|
33
34
|
}
|
|
34
35
|
disposeInstance(instance) {
|
|
35
36
|
if (instance > 0)
|
package/magick-color.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MagickColor = void 0;
|
|
4
4
|
const image_magick_1 = require("./image-magick");
|
|
5
|
+
const magick_error_1 = require("./magick-error");
|
|
5
6
|
const quantum_1 = require("./quantum");
|
|
6
7
|
const string_1 = require("./internal/native/string");
|
|
7
8
|
class MagickColor {
|
|
@@ -18,9 +19,9 @@ class MagickColor {
|
|
|
18
19
|
let instance = 0;
|
|
19
20
|
try {
|
|
20
21
|
instance = image_magick_1.ImageMagick._api._MagickColor_Create();
|
|
21
|
-
string_1._withString(colorOrRed, colorPtr => {
|
|
22
|
+
(0, string_1._withString)(colorOrRed, colorPtr => {
|
|
22
23
|
if (image_magick_1.ImageMagick._api._MagickColor_Initialize(instance, colorPtr) === 0)
|
|
23
|
-
throw new
|
|
24
|
+
throw new magick_error_1.MagickError('invalid color specified');
|
|
24
25
|
this.initialize(instance);
|
|
25
26
|
});
|
|
26
27
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare enum MagickErrorSeverity {
|
|
2
|
+
Error = 400,
|
|
3
|
+
ResourceLimitError = 400,
|
|
4
|
+
TypeError = 405,
|
|
5
|
+
OptionError = 410,
|
|
6
|
+
DelegateError = 415,
|
|
7
|
+
MissingDelegateError = 420,
|
|
8
|
+
CorruptImageError = 425,
|
|
9
|
+
FileOpenError = 430,
|
|
10
|
+
BlobError = 435,
|
|
11
|
+
StreamError = 440,
|
|
12
|
+
CacheError = 445,
|
|
13
|
+
CoderError = 450,
|
|
14
|
+
FilterError = 452,
|
|
15
|
+
ModuleError = 455,
|
|
16
|
+
DrawError = 460,
|
|
17
|
+
ImageError = 465,
|
|
18
|
+
WandError = 470,
|
|
19
|
+
RandomError = 475,
|
|
20
|
+
XServerError = 480,
|
|
21
|
+
MonitorError = 485,
|
|
22
|
+
RegistryError = 490,
|
|
23
|
+
ConfigureError = 495,
|
|
24
|
+
PolicyError = 499
|
|
25
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MagickErrorSeverity = void 0;
|
|
4
|
+
var MagickErrorSeverity;
|
|
5
|
+
(function (MagickErrorSeverity) {
|
|
6
|
+
MagickErrorSeverity[MagickErrorSeverity["Error"] = 400] = "Error";
|
|
7
|
+
MagickErrorSeverity[MagickErrorSeverity["ResourceLimitError"] = 400] = "ResourceLimitError";
|
|
8
|
+
MagickErrorSeverity[MagickErrorSeverity["TypeError"] = 405] = "TypeError";
|
|
9
|
+
MagickErrorSeverity[MagickErrorSeverity["OptionError"] = 410] = "OptionError";
|
|
10
|
+
MagickErrorSeverity[MagickErrorSeverity["DelegateError"] = 415] = "DelegateError";
|
|
11
|
+
MagickErrorSeverity[MagickErrorSeverity["MissingDelegateError"] = 420] = "MissingDelegateError";
|
|
12
|
+
MagickErrorSeverity[MagickErrorSeverity["CorruptImageError"] = 425] = "CorruptImageError";
|
|
13
|
+
MagickErrorSeverity[MagickErrorSeverity["FileOpenError"] = 430] = "FileOpenError";
|
|
14
|
+
MagickErrorSeverity[MagickErrorSeverity["BlobError"] = 435] = "BlobError";
|
|
15
|
+
MagickErrorSeverity[MagickErrorSeverity["StreamError"] = 440] = "StreamError";
|
|
16
|
+
MagickErrorSeverity[MagickErrorSeverity["CacheError"] = 445] = "CacheError";
|
|
17
|
+
MagickErrorSeverity[MagickErrorSeverity["CoderError"] = 450] = "CoderError";
|
|
18
|
+
MagickErrorSeverity[MagickErrorSeverity["FilterError"] = 452] = "FilterError";
|
|
19
|
+
MagickErrorSeverity[MagickErrorSeverity["ModuleError"] = 455] = "ModuleError";
|
|
20
|
+
MagickErrorSeverity[MagickErrorSeverity["DrawError"] = 460] = "DrawError";
|
|
21
|
+
MagickErrorSeverity[MagickErrorSeverity["ImageError"] = 465] = "ImageError";
|
|
22
|
+
MagickErrorSeverity[MagickErrorSeverity["WandError"] = 470] = "WandError";
|
|
23
|
+
MagickErrorSeverity[MagickErrorSeverity["RandomError"] = 475] = "RandomError";
|
|
24
|
+
MagickErrorSeverity[MagickErrorSeverity["XServerError"] = 480] = "XServerError";
|
|
25
|
+
MagickErrorSeverity[MagickErrorSeverity["MonitorError"] = 485] = "MonitorError";
|
|
26
|
+
MagickErrorSeverity[MagickErrorSeverity["RegistryError"] = 490] = "RegistryError";
|
|
27
|
+
MagickErrorSeverity[MagickErrorSeverity["ConfigureError"] = 495] = "ConfigureError";
|
|
28
|
+
MagickErrorSeverity[MagickErrorSeverity["PolicyError"] = 499] = "PolicyError";
|
|
29
|
+
})(MagickErrorSeverity = exports.MagickErrorSeverity || (exports.MagickErrorSeverity = {}));
|
package/magick-error.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MagickError = void 0;
|
|
4
|
+
const magick_error_severity_1 = require("./magick-error-severity");
|
|
5
|
+
class MagickError extends Error {
|
|
6
|
+
constructor(message, severity = magick_error_severity_1.MagickErrorSeverity.Error) {
|
|
7
|
+
super(message);
|
|
8
|
+
this._severity = severity;
|
|
9
|
+
}
|
|
10
|
+
get severity() { return this._severity; }
|
|
11
|
+
}
|
|
12
|
+
exports.MagickError = MagickError;
|
package/magick-format-info.js
CHANGED
|
@@ -27,9 +27,9 @@ class MagickFormatInfo {
|
|
|
27
27
|
const values = Object.values(magick_format_1.MagickFormat);
|
|
28
28
|
for (let i = 0; i < count; i++) {
|
|
29
29
|
const info = image_magick_1.ImageMagick._api._MagickFormatInfo_GetInfo(list, i, exception);
|
|
30
|
-
const formatName = string_1._createString(image_magick_1.ImageMagick._api._MagickFormatInfo_Format_Get(info));
|
|
30
|
+
const formatName = (0, string_1._createString)(image_magick_1.ImageMagick._api._MagickFormatInfo_Format_Get(info));
|
|
31
31
|
const format = MagickFormatInfo.convertFormat(formatName, values);
|
|
32
|
-
const description = string_1._createString(image_magick_1.ImageMagick._api._MagickFormatInfo_Description_Get(info), '');
|
|
32
|
+
const description = (0, string_1._createString)(image_magick_1.ImageMagick._api._MagickFormatInfo_Description_Get(info), '');
|
|
33
33
|
const isReadable = image_magick_1.ImageMagick._api._MagickFormatInfo_IsReadable_Get(info) == 1;
|
|
34
34
|
const isWritable = image_magick_1.ImageMagick._api._MagickFormatInfo_IsWritable_Get(info) == 1;
|
|
35
35
|
result[i] = new MagickFormatInfo(format, description, isReadable, isWritable);
|
package/magick-format.d.ts
CHANGED
package/magick-format.js
CHANGED
package/magick-geometry.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MagickGeometry = void 0;
|
|
4
4
|
const image_magick_1 = require("./image-magick");
|
|
5
5
|
const geometry_flags_1 = require("./internal/geometry-flags");
|
|
6
|
+
const magick_error_1 = require("./magick-error");
|
|
6
7
|
const string_1 = require("./internal/native/string");
|
|
7
8
|
class MagickGeometry {
|
|
8
9
|
constructor(widthOrValueOrX, heightOrY, width, height) {
|
|
@@ -31,17 +32,17 @@ class MagickGeometry {
|
|
|
31
32
|
this._y = 0;
|
|
32
33
|
}
|
|
33
34
|
if (this._width < 0)
|
|
34
|
-
throw new
|
|
35
|
+
throw new magick_error_1.MagickError('negative width is not allowed');
|
|
35
36
|
if (this._height < 0)
|
|
36
|
-
throw new
|
|
37
|
+
throw new magick_error_1.MagickError('negative height is not allowed');
|
|
37
38
|
}
|
|
38
39
|
else {
|
|
39
40
|
const instance = image_magick_1.ImageMagick._api._MagickGeometry_Create();
|
|
40
41
|
try {
|
|
41
|
-
string_1._withString(widthOrValueOrX, valuePtr => {
|
|
42
|
+
(0, string_1._withString)(widthOrValueOrX, valuePtr => {
|
|
42
43
|
const flags = image_magick_1.ImageMagick._api._MagickGeometry_Initialize(instance, valuePtr);
|
|
43
44
|
if (flags === geometry_flags_1.GeometryFlags.NoValue)
|
|
44
|
-
throw new
|
|
45
|
+
throw new magick_error_1.MagickError('invalid geometry specified');
|
|
45
46
|
if (this.hasFlag(flags, geometry_flags_1.GeometryFlags.AspectRatio)) {
|
|
46
47
|
this.initializeFromAspectRation(instance, widthOrValueOrX);
|
|
47
48
|
}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { MagickImage } from './magick-image';
|
|
2
|
+
import { MagickReadSettings } from './settings/magick-read-settings';
|
|
2
3
|
export interface IMagickImageCollection extends Array<MagickImage> {
|
|
4
|
+
dispose(): void;
|
|
5
|
+
read(fileName: string, settings?: MagickReadSettings): void;
|
|
6
|
+
read(array: Uint8Array, settings?: MagickReadSettings): void;
|
|
3
7
|
}
|
|
4
8
|
export declare class MagickImageCollection extends Array<MagickImage> implements IMagickImageCollection {
|
|
5
9
|
private constructor();
|
|
6
10
|
dispose(): void;
|
|
11
|
+
read(fileName: string, settings?: MagickReadSettings): void;
|
|
12
|
+
read(array: Uint8Array, settings?: MagickReadSettings): void;
|
|
7
13
|
static create(): IMagickImageCollection;
|
|
8
14
|
_use(func: (images: IMagickImageCollection) => Promise<void>): Promise<void>;
|
|
15
|
+
private static createObject;
|
|
16
|
+
private static createSettings;
|
|
17
|
+
private addImages;
|
|
9
18
|
}
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MagickImageCollection = void 0;
|
|
4
4
|
const image_magick_1 = require("./image-magick");
|
|
5
|
+
const exception_1 = require("./internal/exception/exception");
|
|
6
|
+
const magick_format_1 = require("./magick-format");
|
|
5
7
|
const magick_image_1 = require("./magick-image");
|
|
8
|
+
const magick_read_settings_1 = require("./settings/magick-read-settings");
|
|
9
|
+
const magick_settings_1 = require("./settings/magick-settings");
|
|
6
10
|
class MagickImageCollection extends Array {
|
|
7
11
|
constructor() {
|
|
8
12
|
super();
|
|
@@ -14,18 +18,41 @@ class MagickImageCollection extends Array {
|
|
|
14
18
|
image = this.pop();
|
|
15
19
|
}
|
|
16
20
|
}
|
|
21
|
+
read(fileNameOrArray, settings) {
|
|
22
|
+
this.dispose();
|
|
23
|
+
exception_1.Exception.use(exception => {
|
|
24
|
+
const readSettings = MagickImageCollection.createSettings(settings);
|
|
25
|
+
if (fileNameOrArray instanceof Uint8Array) {
|
|
26
|
+
readSettings._use(settings => {
|
|
27
|
+
const length = fileNameOrArray.byteLength;
|
|
28
|
+
let data = 0;
|
|
29
|
+
try {
|
|
30
|
+
data = image_magick_1.ImageMagick._api._malloc(length);
|
|
31
|
+
image_magick_1.ImageMagick._api.HEAPU8.set(fileNameOrArray, data);
|
|
32
|
+
const instances = image_magick_1.ImageMagick._api._MagickImageCollection_ReadBlob(settings._instance, data, 0, length, exception.ptr);
|
|
33
|
+
this.addImages(instances, readSettings);
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
if (data !== 0)
|
|
37
|
+
image_magick_1.ImageMagick._api._free(data);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
readSettings._fileName = fileNameOrArray;
|
|
43
|
+
readSettings._use(settings => {
|
|
44
|
+
const instances = image_magick_1.ImageMagick._api._MagickImageCollection_ReadFile(settings._instance, exception.ptr);
|
|
45
|
+
this.addImages(instances, readSettings);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
17
50
|
static create() {
|
|
18
|
-
return
|
|
51
|
+
return MagickImageCollection.createObject();
|
|
19
52
|
}
|
|
20
53
|
static _createFromImages(images, settings) {
|
|
21
|
-
const collection = MagickImageCollection.
|
|
22
|
-
|
|
23
|
-
while (image !== 0) {
|
|
24
|
-
const next = image_magick_1.ImageMagick._api._MagickImage_GetNext(image);
|
|
25
|
-
image_magick_1.ImageMagick._api._MagickImage_SetNext(image, 0);
|
|
26
|
-
collection.push(magick_image_1.MagickImage._createFromImage(image, settings));
|
|
27
|
-
image = next;
|
|
28
|
-
}
|
|
54
|
+
const collection = MagickImageCollection.createObject();
|
|
55
|
+
collection.addImages(images, settings);
|
|
29
56
|
return collection;
|
|
30
57
|
}
|
|
31
58
|
_use(func) {
|
|
@@ -36,5 +63,23 @@ class MagickImageCollection extends Array {
|
|
|
36
63
|
this.dispose();
|
|
37
64
|
}
|
|
38
65
|
}
|
|
66
|
+
static createObject() {
|
|
67
|
+
return Object.create(MagickImageCollection.prototype);
|
|
68
|
+
}
|
|
69
|
+
static createSettings(settings) {
|
|
70
|
+
if (settings == null)
|
|
71
|
+
return new magick_settings_1.MagickSettings();
|
|
72
|
+
return new magick_read_settings_1.MagickReadSettings(settings);
|
|
73
|
+
}
|
|
74
|
+
addImages(images, settings) {
|
|
75
|
+
settings.format = magick_format_1.MagickFormat.Unknown;
|
|
76
|
+
let image = images;
|
|
77
|
+
while (image !== 0) {
|
|
78
|
+
const next = image_magick_1.ImageMagick._api._MagickImage_GetNext(image);
|
|
79
|
+
image_magick_1.ImageMagick._api._MagickImage_SetNext(image, 0);
|
|
80
|
+
this.push(magick_image_1.MagickImage._createFromImage(image, settings));
|
|
81
|
+
image = next;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
39
84
|
}
|
|
40
85
|
exports.MagickImageCollection = MagickImageCollection;
|