wasm-vips 0.0.2 → 0.0.3

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/lib/vips.d.ts CHANGED
@@ -1,16 +1,45 @@
1
- declare namespace vips {
1
+ declare function Vips(config?: Partial<EmscriptenModule>): Promise<NonNullable<typeof Vips>>;
2
2
 
3
+ type ModuleCallback = { (module?: any): void };
4
+
5
+ interface EmscriptenModule {
6
+ print(str: string): void;
7
+ printErr(str: string): void;
8
+
9
+ preInit: ModuleCallback | ModuleCallback[];
10
+ preRun: ModuleCallback | ModuleCallback[];
11
+ postRun: ModuleCallback | ModuleCallback[];
12
+
13
+ onAbort: { (what: any): void };
14
+ onRuntimeInitialized: { (): void };
15
+
16
+ instantiateWasm(
17
+ imports: WebAssembly.Imports,
18
+ successCallback: (instance: WebAssembly.Instance, module: WebAssembly.Module) => void
19
+ ): WebAssembly.Exports;
20
+ locateFile(url: string, scriptDirectory: string): string;
21
+ mainScriptUrlOrBlob: Blob | File | string;
22
+ }
23
+
24
+ declare module Vips {
3
25
  // Allow single pixels/images as input.
4
- type Array<T> = T | T[];
26
+ type SingleOrArray<T> = T | T[];
5
27
 
6
28
  type Enum = string | number;
7
29
  type Flag = string | number;
8
30
  type Blob = string | ArrayBuffer | Uint8Array | Uint8ClampedArray | Int8Array;
9
- type ArrayConstant = Array<number>;
10
- type ArrayImage = Array<Image> | Vector<Image>;
31
+ type ArrayConstant = SingleOrArray<number>;
32
+ type ArrayImage = SingleOrArray<Image> | Vector<Image>;
33
+ type DeletionFuncs<T extends EmbindClassHandle<T>> = EmbindClassHandle<T>[];
11
34
 
12
35
  //#region Utility functions
13
36
 
37
+ /**
38
+ * Queue of handles to be deleted.
39
+ * This is filled when [[deleteLater]] is called on the handle.
40
+ */
41
+ const deletionQueue: DeletionFuncs<Image | Connection | Interpolate>;
42
+
14
43
  /**
15
44
  * Get the major, minor or patch version number of the libvips library.
16
45
  * When the flag is omitted, the entire version number is returned as a string.
@@ -46,14 +75,57 @@ declare namespace vips {
46
75
  */
47
76
  function shutdown(): void;
48
77
 
78
+ /**
79
+ * Convert a bigint value (usually coming from Wasm->JS call) into an int53 JS Number.
80
+ * This is used when we have an incoming i64 that we know is a pointer or size_t and
81
+ * is expected to be withing the int53 range.
82
+ * @return The converted bigint value or NaN if the incoming bigint is outside the range.
83
+ */
84
+ function bigintToI53Checked(num: bigint): number;
85
+
49
86
  //#endregion
50
87
 
51
88
  //#region APIs
52
89
 
90
+ /**
91
+ * Embind adds the following methods to all its exposed classes.
92
+ */
93
+ abstract class EmbindClassHandle<T extends EmbindClassHandle<T>> {
94
+ /**
95
+ * Returns a new handle. It must eventually also be disposed with [[delete]] or
96
+ * [[deleteLater]].
97
+ * @return A new handle.
98
+ */
99
+ clone(): T;
100
+
101
+ /**
102
+ * Signal that a C++ object is no longer needed and can be deleted.
103
+ */
104
+ delete(): void;
105
+
106
+ /**
107
+ * Signal that a C++ object is no longer needed and can be deleted later.
108
+ */
109
+ deleteLater(): void;
110
+
111
+ /**
112
+ * Check whether two Embind handles point to the same underlying object.
113
+ * @param other Embind handle for comparison.
114
+ * @return `true` if the handles point to the same underlying object.
115
+ */
116
+ isAliasOf(other: any): boolean;
117
+
118
+ /**
119
+ * Check whether this handle is deleted.
120
+ * @return `true` if this handle is deleted.
121
+ */
122
+ isDeleted(): boolean;
123
+ }
124
+
53
125
  /**
54
126
  * A sequence container representing an array that can change in size.
55
127
  */
56
- export interface Vector<T> {
128
+ interface Vector<T> extends EmbindClassHandle<Vector<T>> {
57
129
  /**
58
130
  * Adds a new element at the end of the vector, after its current last element.
59
131
  * @param val The value to be appended at the end of the container.
@@ -90,9 +162,9 @@ declare namespace vips {
90
162
  }
91
163
 
92
164
  /**
93
- * A class around libvips' operation cache.
165
+ * An abstract class around libvips' operation cache.
94
166
  */
95
- export class Cache {
167
+ abstract class Cache {
96
168
  /**
97
169
  * Gets or, when a parameter is provided, sets the maximum number of operations libvips keeps in cache.
98
170
  * @param max Maximum number of operations.
@@ -122,11 +194,11 @@ declare namespace vips {
122
194
  }
123
195
 
124
196
  /**
125
- * A class that provides the statistics of memory usage and opened files.
197
+ * An abstract class that provides the statistics of memory usage and opened files.
126
198
  * libvips watches the total amount of live tracked memory and
127
199
  * uses this information to decide when to trim caches.
128
200
  */
129
- export class Stats {
201
+ abstract class Stats {
130
202
  /**
131
203
  * Get the number of active allocations.
132
204
  * @return The number of active allocations.
@@ -155,9 +227,9 @@ declare namespace vips {
155
227
  }
156
228
 
157
229
  /**
158
- * A class for error messages and error handling.
230
+ * An abstract class for error messages and error handling.
159
231
  */
160
- export class Error {
232
+ abstract class Error {
161
233
  /**
162
234
  * Get the error buffer as a string.
163
235
  * @return The error buffer as a string.
@@ -174,7 +246,7 @@ declare namespace vips {
174
246
  /**
175
247
  * Handy utilities.
176
248
  */
177
- export class Utils {
249
+ abstract class Utils {
178
250
  /**
179
251
  * Get the GType for a name.
180
252
  * Looks up the GType for a nickname. Types below basename in the type hierarchy are searched.
@@ -195,7 +267,7 @@ declare namespace vips {
195
267
  /**
196
268
  * The abstract base Connection class.
197
269
  */
198
- export class Connection {
270
+ abstract class Connection extends EmbindClassHandle<Connection> {
199
271
  /**
200
272
  * Get the filename associated with a connection.
201
273
  */
@@ -210,7 +282,7 @@ declare namespace vips {
210
282
  /**
211
283
  * An input connection.
212
284
  */
213
- export class Source extends Connection {
285
+ class Source extends Connection {
214
286
  /**
215
287
  * Make a new source from a file.
216
288
  *
@@ -242,14 +314,14 @@ declare namespace vips {
242
314
  /**
243
315
  * A source that can be attached to callbacks to implement behavior.
244
316
  */
245
- export class SourceCustom extends Source {
317
+ class SourceCustom extends Source {
246
318
  /**
247
319
  * Attach a read handler.
248
320
  * @param ptr A pointer to an array of bytes where the read content is stored.
249
321
  * @param size The maximum number of bytes to be read.
250
322
  * @return The total number of bytes read into the buffer.
251
323
  */
252
- onRead: (ptr: number, size: number) => number;
324
+ onRead: (ptr: number, size: bigint) => bigint;
253
325
 
254
326
  /**
255
327
  * Attach a seek handler.
@@ -259,13 +331,13 @@ declare namespace vips {
259
331
  * @param size A value indicating the reference point used to obtain the new position.
260
332
  * @return The new position within the current source.
261
333
  */
262
- onSeek: (offset: number, whence: number) => number;
334
+ onSeek: (offset: bigint, whence: number) => bigint;
263
335
  }
264
336
 
265
337
  /**
266
338
  * An output connection.
267
339
  */
268
- export class Target extends Connection {
340
+ class Target extends Connection {
269
341
  /**
270
342
  * Make a new target to write to a file.
271
343
  *
@@ -305,28 +377,48 @@ declare namespace vips {
305
377
  /**
306
378
  * A target that can be attached to callbacks to implement behavior.
307
379
  */
308
- export class TargetCustom extends Target {
380
+ class TargetCustom extends Target {
309
381
  /**
310
382
  * Attach a write handler.
311
383
  * @param ptr A pointer to an array of bytes which will be written to.
312
384
  * @param length The number of bytes to write.
313
385
  * @return The number of bytes that were written.
314
386
  */
315
- onWrite: (ptr: number, size: number) => number;
387
+ onWrite: (ptr: number, size: bigint) => bigint;
388
+
389
+ /* libtiff needs to be able to seek and read on targets, unfortunately.
390
+ */
391
+
392
+ /**
393
+ * Attach a read handler.
394
+ * @param ptr A pointer to an array of bytes where the read content is stored.
395
+ * @param size The maximum number of bytes to be read.
396
+ * @return The total number of bytes read from the target.
397
+ */
398
+ onRead: (ptr: number, size: bigint) => bigint;
316
399
 
317
400
  /**
318
- * Attach a finish handler.
401
+ * Attach a seek handler.
402
+ * @param offset A byte offset relative to the whence parameter.
403
+ * @param size A value indicating the reference point used to obtain the new position.
404
+ * @return The new position within the current target.
405
+ */
406
+ onSeek: (offset: bigint, whence: number) => bigint;
407
+
408
+ /**
409
+ * Attach an end handler.
319
410
  * This optional handler is called at the end of write. It should do any
320
411
  * cleaning up, if necessary.
412
+ * @return 0 on success, -1 on error.
321
413
  */
322
- onFinish: () => void;
414
+ onEnd: () => number;
323
415
  }
324
416
 
325
417
  /**
326
418
  * A class to build various interpolators.
327
419
  * For e.g. nearest, bilinear, and some non-linear.
328
420
  */
329
- export class Interpolate {
421
+ class Interpolate extends EmbindClassHandle<Interpolate> {
330
422
  /**
331
423
  * Look up an interpolator from a nickname and make one.
332
424
  * @param nickname Nickname for interpolator.
@@ -338,7 +430,7 @@ declare namespace vips {
338
430
  /**
339
431
  * An image class.
340
432
  */
341
- export class Image extends ImageAutoGen {
433
+ class Image extends ImageAutoGen {
342
434
  /**
343
435
  * Image width in pixels.
344
436
  */
@@ -456,13 +548,14 @@ declare namespace vips {
456
548
  */
457
549
  memory?: boolean
458
550
  /**
459
- * Hint the expected access pattern for the image
551
+ * Hint the expected access pattern for the image.
460
552
  */
461
553
  access?: Access | Enum
462
554
  /**
463
- * Fail on first error.
555
+ * The type of error that will cause load to fail. By default,
556
+ * loaders are permissive, that is, [[FailOn.none]].
464
557
  */
465
- fail?: boolean
558
+ fail_on?: FailOn | Enum
466
559
  }): Image;
467
560
 
468
561
  /**
@@ -520,13 +613,14 @@ declare namespace vips {
520
613
  */
521
614
  static newFromBuffer(data: Blob, strOptions?: string, options?: {
522
615
  /**
523
- * Hint the expected access pattern for the image
616
+ * Hint the expected access pattern for the image.
524
617
  */
525
618
  access?: Access | Enum
526
619
  /**
527
- * Fail on first error.
620
+ * The type of error that will cause load to fail. By default,
621
+ * loaders are permissive, that is, [[FailOn.none]].
528
622
  */
529
- fail?: boolean
623
+ fail_on?: FailOn | Enum
530
624
  }): Image;
531
625
 
532
626
  /**
@@ -541,20 +635,21 @@ declare namespace vips {
541
635
  */
542
636
  static newFromSource(source: Source, strOptions?: string, options?: {
543
637
  /**
544
- * Hint the expected access pattern for the image
638
+ * Hint the expected access pattern for the image.
545
639
  */
546
640
  access?: Access | Enum
547
641
  /**
548
- * Fail on first error.
642
+ * The type of error that will cause load to fail. By default,
643
+ * loaders are permissive, that is, [[FailOn.none]].
549
644
  */
550
- fail?: boolean
645
+ fail_on?: FailOn | Enum
551
646
  }): Image;
552
647
 
553
648
  /**
554
649
  * Create an image from a 1D array.
555
650
  *
556
651
  * A new one-band image with [[BandFormat.double]] pixels is
557
- * created from the array. These image are useful with the libvips
652
+ * created from the array. These images are useful with the libvips
558
653
  * convolution operator [[conv]].
559
654
  * @param width Image width.
560
655
  * @param height Image height.
@@ -567,7 +662,7 @@ declare namespace vips {
567
662
  * Create an image from a 2D array.
568
663
  *
569
664
  * A new one-band image with [[BandFormat.double]] pixels is
570
- * created from the array. These image are useful with the libvips
665
+ * created from the array. These images are useful with the libvips
571
666
  * convolution operator [[conv]].
572
667
  * @param array Create the image from these values.
573
668
  * @param scale Default to 1.0. What to divide each pixel by after
@@ -942,7 +1037,7 @@ declare namespace vips {
942
1037
  * @param options Optional options.
943
1038
  * @return Blended image.
944
1039
  */
945
- static composite(_in: ArrayImage, mode: Array<Enum>, options?: {
1040
+ static composite(_in: ArrayImage, mode: SingleOrArray<BlendMode>, options?: {
946
1041
  /**
947
1042
  * Array of x coordinates to join at.
948
1043
  */
@@ -968,7 +1063,7 @@ declare namespace vips {
968
1063
  * @param options Optional options.
969
1064
  * @return Blended image.
970
1065
  */
971
- composite(overlay: ArrayImage, mode: Array<Enum>, options?: {
1066
+ composite(overlay: ArrayImage, mode: SingleOrArray<BlendMode>, options?: {
972
1067
  /**
973
1068
  * Array of x coordinates to join at.
974
1069
  */
@@ -1327,13 +1422,15 @@ declare namespace vips {
1327
1422
 
1328
1423
  //#endregion
1329
1424
 
1425
+ //#region Auto-generated enumerations
1426
+
1330
1427
  /**
1331
1428
  * The format used for each band element.
1332
1429
  *
1333
1430
  * Each corresponds to a native C type for the current machine. For example,
1334
1431
  * #VIPS_FORMAT_USHORT is <type>unsigned short</type>.
1335
1432
  */
1336
- export enum BandFormat {
1433
+ enum BandFormat {
1337
1434
  /**
1338
1435
  * Unsigned char format
1339
1436
  */
@@ -1386,7 +1483,7 @@ declare namespace vips {
1386
1483
  *
1387
1484
  * The non-separable modes are not implemented.
1388
1485
  */
1389
- export enum BlendMode {
1486
+ enum BlendMode {
1390
1487
  /**
1391
1488
  * Where the second object is drawn, the first is removed
1392
1489
  */
@@ -1499,7 +1596,7 @@ declare namespace vips {
1499
1596
  * The gaps in the numbering are historical and must be maintained. Allocate
1500
1597
  * new numbers from the end.
1501
1598
  */
1502
- export enum Coding {
1599
+ enum Coding {
1503
1600
  /**
1504
1601
  * Pixels are not coded
1505
1602
  */
@@ -1525,7 +1622,7 @@ declare namespace vips {
1525
1622
  * The gaps in numbering are historical and must be maintained. Allocate
1526
1623
  * new numbers from the end.
1527
1624
  */
1528
- export enum Interpretation {
1625
+ enum Interpretation {
1529
1626
  /**
1530
1627
  * Generic many-band image
1531
1628
  */
@@ -1636,7 +1733,7 @@ declare namespace vips {
1636
1733
  *
1637
1734
  * See also: vips_image_pipelinev().
1638
1735
  */
1639
- export enum DemandStyle {
1736
+ enum DemandStyle {
1640
1737
  /**
1641
1738
  * Demand in small (typically 64x64 pixel) tiles
1642
1739
  */
@@ -1654,7 +1751,7 @@ declare namespace vips {
1654
1751
  /**
1655
1752
  * See also: vips_relational().
1656
1753
  */
1657
- export enum OperationRelational {
1754
+ enum OperationRelational {
1658
1755
  /**
1659
1756
  * ==
1660
1757
  */
@@ -1684,7 +1781,7 @@ declare namespace vips {
1684
1781
  /**
1685
1782
  * See also: vips_boolean().
1686
1783
  */
1687
- export enum OperationBoolean {
1784
+ enum OperationBoolean {
1688
1785
  /**
1689
1786
  * &
1690
1787
  */
@@ -1710,7 +1807,7 @@ declare namespace vips {
1710
1807
  /**
1711
1808
  * See also: vips_math().
1712
1809
  */
1713
- export enum OperationMath2 {
1810
+ enum OperationMath2 {
1714
1811
  /**
1715
1812
  * Pow( left, right )
1716
1813
  */
@@ -1728,7 +1825,7 @@ declare namespace vips {
1728
1825
  /**
1729
1826
  * See also: vips_complex2().
1730
1827
  */
1731
- export enum OperationComplex2 {
1828
+ enum OperationComplex2 {
1732
1829
  /**
1733
1830
  * Convert to polar coordinates
1734
1831
  */
@@ -1738,7 +1835,7 @@ declare namespace vips {
1738
1835
  /**
1739
1836
  * See also: vips_math().
1740
1837
  */
1741
- export enum OperationMath {
1838
+ enum OperationMath {
1742
1839
  /**
1743
1840
  * Sin(), angles in degrees
1744
1841
  */
@@ -1808,7 +1905,7 @@ declare namespace vips {
1808
1905
  /**
1809
1906
  * See also: vips_round().
1810
1907
  */
1811
- export enum OperationRound {
1908
+ enum OperationRound {
1812
1909
  /**
1813
1910
  * Round to nearest
1814
1911
  */
@@ -1826,7 +1923,7 @@ declare namespace vips {
1826
1923
  /**
1827
1924
  * See also: vips_complex().
1828
1925
  */
1829
- export enum OperationComplex {
1926
+ enum OperationComplex {
1830
1927
  /**
1831
1928
  * Convert to polar coordinates
1832
1929
  */
@@ -1844,7 +1941,7 @@ declare namespace vips {
1844
1941
  /**
1845
1942
  * See also: vips_complexget().
1846
1943
  */
1847
- export enum OperationComplexget {
1944
+ enum OperationComplexget {
1848
1945
  /**
1849
1946
  * Get real component
1850
1947
  */
@@ -1858,7 +1955,7 @@ declare namespace vips {
1858
1955
  /**
1859
1956
  * How to combine values. See vips_compass(), for example.
1860
1957
  */
1861
- export enum Combine {
1958
+ enum Combine {
1862
1959
  /**
1863
1960
  * Take the maximum of the possible values
1864
1961
  */
@@ -1882,7 +1979,7 @@ declare namespace vips {
1882
1979
  * @VIPS_ACCESS_SEQUENTIAL means requests will be top-to-bottom, but with some
1883
1980
  * amount of buffering behind the read point for small non-local accesses.
1884
1981
  */
1885
- export enum Access {
1982
+ enum Access {
1886
1983
  /**
1887
1984
  * Can read anywhere
1888
1985
  */
@@ -1919,7 +2016,7 @@ declare namespace vips {
1919
2016
  *
1920
2017
  * See also: vips_embed().
1921
2018
  */
1922
- export enum Extend {
2019
+ enum Extend {
1923
2020
  /**
1924
2021
  * Extend with black (all 0) pixels
1925
2022
  */
@@ -1949,7 +2046,7 @@ declare namespace vips {
1949
2046
  /**
1950
2047
  * A direction on a compass. Used for vips_gravity(), for example.
1951
2048
  */
1952
- export enum CompassDirection {
2049
+ enum CompassDirection {
1953
2050
  /**
1954
2051
  * Centre
1955
2052
  */
@@ -1996,7 +2093,7 @@ declare namespace vips {
1996
2093
  *
1997
2094
  * See also: vips_flip(), vips_join().
1998
2095
  */
1999
- export enum Direction {
2096
+ enum Direction {
2000
2097
  /**
2001
2098
  * Left-right
2002
2099
  */
@@ -2015,7 +2112,7 @@ declare namespace vips {
2015
2112
  *
2016
2113
  * See also: vips_join().
2017
2114
  */
2018
- export enum Align {
2115
+ enum Align {
2019
2116
  /**
2020
2117
  * Align low coordinate edge
2021
2118
  */
@@ -2041,7 +2138,7 @@ declare namespace vips {
2041
2138
  *
2042
2139
  * See also: vips_smartcrop().
2043
2140
  */
2044
- export enum Interesting {
2141
+ enum Interesting {
2045
2142
  /**
2046
2143
  * Do nothing
2047
2144
  */
@@ -2079,7 +2176,7 @@ declare namespace vips {
2079
2176
  *
2080
2177
  * See also: vips_rot().
2081
2178
  */
2082
- export enum Angle {
2179
+ enum Angle {
2083
2180
  /**
2084
2181
  * No rotate
2085
2182
  */
@@ -2105,7 +2202,7 @@ declare namespace vips {
2105
2202
  *
2106
2203
  * See also: vips_rot45().
2107
2204
  */
2108
- export enum Angle45 {
2205
+ enum Angle45 {
2109
2206
  /**
2110
2207
  * No rotate
2111
2208
  */
@@ -2143,7 +2240,7 @@ declare namespace vips {
2143
2240
  /**
2144
2241
  * How accurate an operation should be.
2145
2242
  */
2146
- export enum Precision {
2243
+ enum Precision {
2147
2244
  /**
2148
2245
  * Int everywhere
2149
2246
  */
@@ -2165,7 +2262,7 @@ declare namespace vips {
2165
2262
  * Each one implies the ones before it, so #VIPS_FAIL_ON_ERROR implies
2166
2263
  * #VIPS_FAIL_ON_TRUNCATED.
2167
2264
  */
2168
- export enum FailOn {
2265
+ enum FailOn {
2169
2266
  /**
2170
2267
  * Never stop
2171
2268
  */
@@ -2195,7 +2292,7 @@ declare namespace vips {
2195
2292
  *
2196
2293
  * #VIPS_FOREIGN_PPM_FORMAT_PFM images are 32-bit float pixels.
2197
2294
  */
2198
- export enum ForeignPpmFormat {
2295
+ enum ForeignPpmFormat {
2199
2296
  /**
2200
2297
  * Portable bitmap
2201
2298
  */
@@ -2217,7 +2314,7 @@ declare namespace vips {
2217
2314
  /**
2218
2315
  * Set subsampling mode.
2219
2316
  */
2220
- export enum ForeignSubsample {
2317
+ enum ForeignSubsample {
2221
2318
  /**
2222
2319
  * Prevent subsampling when quality >= 90
2223
2320
  */
@@ -2235,7 +2332,7 @@ declare namespace vips {
2235
2332
  /**
2236
2333
  * What directory layout and metadata standard to use.
2237
2334
  */
2238
- export enum ForeignDzLayout {
2335
+ enum ForeignDzLayout {
2239
2336
  /**
2240
2337
  * Use DeepZoom directory layout
2241
2338
  */
@@ -2261,7 +2358,7 @@ declare namespace vips {
2261
2358
  /**
2262
2359
  * How many pyramid layers to create.
2263
2360
  */
2264
- export enum ForeignDzDepth {
2361
+ enum ForeignDzDepth {
2265
2362
  /**
2266
2363
  * Create layers down to 1x1 pixel
2267
2364
  */
@@ -2279,7 +2376,7 @@ declare namespace vips {
2279
2376
  /**
2280
2377
  * How many pyramid layers to create.
2281
2378
  */
2282
- export enum ForeignDzContainer {
2379
+ enum ForeignDzContainer {
2283
2380
  /**
2284
2381
  * Write tiles to the filesystem
2285
2382
  */
@@ -2297,7 +2394,7 @@ declare namespace vips {
2297
2394
  /**
2298
2395
  * How to calculate the output pixels when shrinking a 2x2 region.
2299
2396
  */
2300
- export enum RegionShrink {
2397
+ enum RegionShrink {
2301
2398
  /**
2302
2399
  * Use the average
2303
2400
  */
@@ -2327,7 +2424,7 @@ declare namespace vips {
2327
2424
  /**
2328
2425
  * Tune lossy encoder settings for different image types.
2329
2426
  */
2330
- export enum ForeignWebpPreset {
2427
+ enum ForeignWebpPreset {
2331
2428
  /**
2332
2429
  * Default preset
2333
2430
  */
@@ -2365,7 +2462,7 @@ declare namespace vips {
2365
2462
  *
2366
2463
  * Use @level to set webp and zstd compression level.
2367
2464
  */
2368
- export enum ForeignTiffCompression {
2465
+ enum ForeignTiffCompression {
2369
2466
  /**
2370
2467
  * No compression
2371
2468
  */
@@ -2408,7 +2505,7 @@ declare namespace vips {
2408
2505
  * The predictor can help deflate and lzw compression. The values are fixed by
2409
2506
  * the tiff library.
2410
2507
  */
2411
- export enum ForeignTiffPredictor {
2508
+ enum ForeignTiffPredictor {
2412
2509
  /**
2413
2510
  * No prediction
2414
2511
  */
@@ -2426,7 +2523,7 @@ declare namespace vips {
2426
2523
  /**
2427
2524
  * Use inches or centimeters as the resolution unit for a tiff file.
2428
2525
  */
2429
- export enum ForeignTiffResunit {
2526
+ enum ForeignTiffResunit {
2430
2527
  /**
2431
2528
  * Use centimeters
2432
2529
  */
@@ -2442,7 +2539,7 @@ declare namespace vips {
2442
2539
  *
2443
2540
  * This is assumed to use the same numbering as %heif_compression_format.
2444
2541
  */
2445
- export enum ForeignHeifCompression {
2542
+ enum ForeignHeifCompression {
2446
2543
  /**
2447
2544
  * X265
2448
2545
  */
@@ -2467,7 +2564,7 @@ declare namespace vips {
2467
2564
  *
2468
2565
  * See also: vips_thumbnail().
2469
2566
  */
2470
- export enum Size {
2567
+ enum Size {
2471
2568
  /**
2472
2569
  * Size both up and down
2473
2570
  */
@@ -2491,7 +2588,7 @@ declare namespace vips {
2491
2588
  * scientific work, #VIPS_INTENT_RELATIVE is usually best for
2492
2589
  * accurate communication with other imaging libraries.
2493
2590
  */
2494
- export enum Intent {
2591
+ enum Intent {
2495
2592
  /**
2496
2593
  * Perceptual rendering intent
2497
2594
  */
@@ -2513,7 +2610,7 @@ declare namespace vips {
2513
2610
  /**
2514
2611
  * The resampling kernels vips supports. See vips_reduce(), for example.
2515
2612
  */
2516
- export enum Kernel {
2613
+ enum Kernel {
2517
2614
  /**
2518
2615
  * The nearest pixel to the point.
2519
2616
  */
@@ -2545,7 +2642,7 @@ declare namespace vips {
2545
2642
  * vips_icc_export(). LAB is usually best, XYZ can be more convenient in some
2546
2643
  * cases.
2547
2644
  */
2548
- export enum PCS {
2645
+ enum PCS {
2549
2646
  /**
2550
2647
  * Use CIELAB D65 as the Profile Connection Space
2551
2648
  */
@@ -2561,7 +2658,7 @@ declare namespace vips {
2561
2658
  *
2562
2659
  * See also: vips_morph().
2563
2660
  */
2564
- export enum OperationMorphology {
2661
+ enum OperationMorphology {
2565
2662
  /**
2566
2663
  * True if all set
2567
2664
  */
@@ -2580,7 +2677,7 @@ declare namespace vips {
2580
2677
  *
2581
2678
  * See also: vips_join().
2582
2679
  */
2583
- export enum CombineMode {
2680
+ enum CombineMode {
2584
2681
  /**
2585
2682
  * Set pixels to the new value
2586
2683
  */
@@ -2595,7 +2692,7 @@ declare namespace vips {
2595
2692
  * http://www.w3.org/TR/PNG-Filters.html
2596
2693
  * The values mirror those of png.h in libpng.
2597
2694
  */
2598
- export enum ForeignPngFilter {
2695
+ enum ForeignPngFilter {
2599
2696
  /**
2600
2697
  * No filtering
2601
2698
  */
@@ -2622,7 +2719,11 @@ declare namespace vips {
2622
2719
  all = 'all'
2623
2720
  }
2624
2721
 
2625
- class ImageAutoGen {
2722
+ //#endregion
2723
+
2724
+ //#region Auto-generated classes
2725
+
2726
+ abstract class ImageAutoGen extends EmbindClassHandle<ImageAutoGen> {
2626
2727
  // THIS IS A GENERATED CLASS. DO NOT EDIT DIRECTLY.
2627
2728
 
2628
2729
  /**
@@ -3052,6 +3153,10 @@ declare namespace vips {
3052
3153
  * Fetch thumbnail image.
3053
3154
  */
3054
3155
  thumbnail?: boolean
3156
+ /**
3157
+ * Remove all denial of service limits.
3158
+ */
3159
+ unlimited?: boolean
3055
3160
  /**
3056
3161
  * Force open via memory.
3057
3162
  */
@@ -3089,6 +3194,10 @@ declare namespace vips {
3089
3194
  * Fetch thumbnail image.
3090
3195
  */
3091
3196
  thumbnail?: boolean
3197
+ /**
3198
+ * Remove all denial of service limits.
3199
+ */
3200
+ unlimited?: boolean
3092
3201
  /**
3093
3202
  * Force open via memory.
3094
3203
  */
@@ -3126,6 +3235,10 @@ declare namespace vips {
3126
3235
  * Fetch thumbnail image.
3127
3236
  */
3128
3237
  thumbnail?: boolean
3238
+ /**
3239
+ * Remove all denial of service limits.
3240
+ */
3241
+ unlimited?: boolean
3129
3242
  /**
3130
3243
  * Force open via memory.
3131
3244
  */
@@ -3553,7 +3666,7 @@ declare namespace vips {
3553
3666
  * @param order Filter order.
3554
3667
  * @param frequency_cutoff_x Frequency cutoff x.
3555
3668
  * @param frequency_cutoff_y Frequency cutoff y.
3556
- * @param radius radius of circle.
3669
+ * @param radius Radius of circle.
3557
3670
  * @param amplitude_cutoff Amplitude cutoff.
3558
3671
  * @param options Optional options.
3559
3672
  * @return Output image.
@@ -3668,7 +3781,7 @@ declare namespace vips {
3668
3781
  * @param height Image height in pixels.
3669
3782
  * @param frequency_cutoff_x Frequency cutoff x.
3670
3783
  * @param frequency_cutoff_y Frequency cutoff y.
3671
- * @param radius radius of circle.
3784
+ * @param radius Radius of circle.
3672
3785
  * @param amplitude_cutoff Amplitude cutoff.
3673
3786
  * @param options Optional options.
3674
3787
  * @return Output image.
@@ -3754,7 +3867,7 @@ declare namespace vips {
3754
3867
  * @param height Image height in pixels.
3755
3868
  * @param frequency_cutoff_x Frequency cutoff x.
3756
3869
  * @param frequency_cutoff_y Frequency cutoff y.
3757
- * @param radius radius of circle.
3870
+ * @param radius Radius of circle.
3758
3871
  * @param options Optional options.
3759
3872
  * @return Output image.
3760
3873
  */
@@ -4064,6 +4177,10 @@ declare namespace vips {
4064
4177
  * Background value.
4065
4178
  */
4066
4179
  background?: ArrayConstant
4180
+ /**
4181
+ * Decrypt with this password.
4182
+ */
4183
+ password?: string
4067
4184
  /**
4068
4185
  * Force open via memory.
4069
4186
  */
@@ -4109,6 +4226,10 @@ declare namespace vips {
4109
4226
  * Background value.
4110
4227
  */
4111
4228
  background?: ArrayConstant
4229
+ /**
4230
+ * Decrypt with this password.
4231
+ */
4232
+ password?: string
4112
4233
  /**
4113
4234
  * Force open via memory.
4114
4235
  */
@@ -4154,6 +4275,10 @@ declare namespace vips {
4154
4275
  * Background value.
4155
4276
  */
4156
4277
  background?: ArrayConstant
4278
+ /**
4279
+ * Decrypt with this password.
4280
+ */
4281
+ password?: string
4157
4282
  /**
4158
4283
  * Force open via memory.
4159
4284
  */
@@ -4717,6 +4842,10 @@ declare namespace vips {
4717
4842
  * Rendering intent.
4718
4843
  */
4719
4844
  intent?: Intent | Enum
4845
+ /**
4846
+ * Error level to fail on.
4847
+ */
4848
+ fail_on?: FailOn | Enum
4720
4849
  }): Image;
4721
4850
 
4722
4851
  /**
@@ -4763,6 +4892,10 @@ declare namespace vips {
4763
4892
  * Rendering intent.
4764
4893
  */
4765
4894
  intent?: Intent | Enum
4895
+ /**
4896
+ * Error level to fail on.
4897
+ */
4898
+ fail_on?: FailOn | Enum
4766
4899
  }): Image;
4767
4900
 
4768
4901
  /**
@@ -4809,6 +4942,10 @@ declare namespace vips {
4809
4942
  * Rendering intent.
4810
4943
  */
4811
4944
  intent?: Intent | Enum
4945
+ /**
4946
+ * Error level to fail on.
4947
+ */
4948
+ fail_on?: FailOn | Enum
4812
4949
  }): Image;
4813
4950
 
4814
4951
  /**
@@ -5405,7 +5542,7 @@ declare namespace vips {
5405
5542
 
5406
5543
  /**
5407
5544
  * Boolean operation across image bands.
5408
- * @param boolean boolean to perform.
5545
+ * @param boolean Boolean to perform.
5409
5546
  * @return Output image.
5410
5547
  */
5411
5548
  bandbool(boolean: OperationBoolean | Enum): Image;
@@ -5443,7 +5580,7 @@ declare namespace vips {
5443
5580
  /**
5444
5581
  * Boolean operation on two images.
5445
5582
  * @param right Right-hand image argument.
5446
- * @param boolean boolean to perform.
5583
+ * @param boolean Boolean to perform.
5447
5584
  * @return Output image.
5448
5585
  */
5449
5586
  boolean(right: Image | ArrayConstant, boolean: OperationBoolean | Enum): Image;
@@ -5564,7 +5701,7 @@ declare namespace vips {
5564
5701
 
5565
5702
  /**
5566
5703
  * Perform a complex operation on an image.
5567
- * @param cmplx complex to perform.
5704
+ * @param cmplx Complex to perform.
5568
5705
  * @return Output image.
5569
5706
  */
5570
5707
  complex(cmplx: OperationComplex | Enum): Image;
@@ -5572,7 +5709,7 @@ declare namespace vips {
5572
5709
  /**
5573
5710
  * Complex binary operations on two images.
5574
5711
  * @param right Right-hand image argument.
5575
- * @param cmplx binary complex operation to perform.
5712
+ * @param cmplx Binary complex operation to perform.
5576
5713
  * @return Output image.
5577
5714
  */
5578
5715
  complex2(right: Image | ArrayConstant, cmplx: OperationComplex2 | Enum): Image;
@@ -5586,7 +5723,7 @@ declare namespace vips {
5586
5723
 
5587
5724
  /**
5588
5725
  * Get a component from a complex image.
5589
- * @param get complex to perform.
5726
+ * @param get Complex to perform.
5590
5727
  * @return Output image.
5591
5728
  */
5592
5729
  complexget(get: OperationComplexget | Enum): Image;
@@ -5999,10 +6136,6 @@ declare namespace vips {
5999
6136
  * Pyramid container type.
6000
6137
  */
6001
6138
  container?: ForeignDzContainer | Enum
6002
- /**
6003
- * Write a properties file to the output directory.
6004
- */
6005
- properties?: boolean
6006
6139
  /**
6007
6140
  * Zip deflate compression level.
6008
6141
  */
@@ -6080,9 +6213,81 @@ declare namespace vips {
6080
6213
  */
6081
6214
  container?: ForeignDzContainer | Enum
6082
6215
  /**
6083
- * Write a properties file to the output directory.
6216
+ * Zip deflate compression level.
6084
6217
  */
6085
- properties?: boolean
6218
+ compression?: number
6219
+ /**
6220
+ * Method to shrink regions.
6221
+ */
6222
+ region_shrink?: RegionShrink | Enum
6223
+ /**
6224
+ * Skip tiles which are nearly equal to the background.
6225
+ */
6226
+ skip_blanks?: number
6227
+ /**
6228
+ * Don't strip tile metadata.
6229
+ */
6230
+ no_strip?: boolean
6231
+ /**
6232
+ * Resource id.
6233
+ */
6234
+ id?: string
6235
+ /**
6236
+ * Strip all metadata from image.
6237
+ */
6238
+ strip?: boolean
6239
+ /**
6240
+ * Background value.
6241
+ */
6242
+ background?: ArrayConstant
6243
+ /**
6244
+ * Set page height for multipage save.
6245
+ */
6246
+ page_height?: number
6247
+ }): Uint8Array;
6248
+
6249
+ /**
6250
+ * Save image to deepzoom target.
6251
+ * @param target Target to save to.
6252
+ * @param options Optional options.
6253
+ */
6254
+ dzsaveTarget(target: Target, options?: {
6255
+ /**
6256
+ * Base name to save to.
6257
+ */
6258
+ basename?: string
6259
+ /**
6260
+ * Directory layout.
6261
+ */
6262
+ layout?: ForeignDzLayout | Enum
6263
+ /**
6264
+ * Filename suffix for tiles.
6265
+ */
6266
+ suffix?: string
6267
+ /**
6268
+ * Tile overlap in pixels.
6269
+ */
6270
+ overlap?: number
6271
+ /**
6272
+ * Tile size in pixels.
6273
+ */
6274
+ tile_size?: number
6275
+ /**
6276
+ * Center image in tile.
6277
+ */
6278
+ centre?: boolean
6279
+ /**
6280
+ * Pyramid depth.
6281
+ */
6282
+ depth?: ForeignDzDepth | Enum
6283
+ /**
6284
+ * Rotate image during save.
6285
+ */
6286
+ angle?: Angle | Enum
6287
+ /**
6288
+ * Pyramid container type.
6289
+ */
6290
+ container?: ForeignDzContainer | Enum
6086
6291
  /**
6087
6292
  * Zip deflate compression level.
6088
6293
  */
@@ -6115,7 +6320,7 @@ declare namespace vips {
6115
6320
  * Set page height for multipage save.
6116
6321
  */
6117
6322
  page_height?: number
6118
- }): Uint8Array;
6323
+ }): void;
6119
6324
 
6120
6325
  /**
6121
6326
  * Embed an image in a larger image.
@@ -6302,6 +6507,18 @@ declare namespace vips {
6302
6507
  * Number of bits per pixel.
6303
6508
  */
6304
6509
  bitdepth?: number
6510
+ /**
6511
+ * Maximum inter-frame error for transparency.
6512
+ */
6513
+ interframe_maxerror?: number
6514
+ /**
6515
+ * Reoptimise colour palettes.
6516
+ */
6517
+ reoptimise?: boolean
6518
+ /**
6519
+ * Maximum inter-palette error for palette reusage.
6520
+ */
6521
+ interpalette_maxerror?: number
6305
6522
  /**
6306
6523
  * Strip all metadata from image.
6307
6524
  */
@@ -6334,6 +6551,18 @@ declare namespace vips {
6334
6551
  * Number of bits per pixel.
6335
6552
  */
6336
6553
  bitdepth?: number
6554
+ /**
6555
+ * Maximum inter-frame error for transparency.
6556
+ */
6557
+ interframe_maxerror?: number
6558
+ /**
6559
+ * Reoptimise colour palettes.
6560
+ */
6561
+ reoptimise?: boolean
6562
+ /**
6563
+ * Maximum inter-palette error for palette reusage.
6564
+ */
6565
+ interpalette_maxerror?: number
6337
6566
  /**
6338
6567
  * Strip all metadata from image.
6339
6568
  */
@@ -6366,6 +6595,18 @@ declare namespace vips {
6366
6595
  * Number of bits per pixel.
6367
6596
  */
6368
6597
  bitdepth?: number
6598
+ /**
6599
+ * Maximum inter-frame error for transparency.
6600
+ */
6601
+ interframe_maxerror?: number
6602
+ /**
6603
+ * Reoptimise colour palettes.
6604
+ */
6605
+ reoptimise?: boolean
6606
+ /**
6607
+ * Maximum inter-palette error for palette reusage.
6608
+ */
6609
+ interpalette_maxerror?: number
6369
6610
  /**
6370
6611
  * Strip all metadata from image.
6371
6612
  */
@@ -6398,7 +6639,7 @@ declare namespace vips {
6398
6639
 
6399
6640
  /**
6400
6641
  * Place an image within a larger image with a certain gravity.
6401
- * @param direction direction to place image within width/height.
6642
+ * @param direction Direction to place image within width/height.
6402
6643
  * @param width Image width in pixels.
6403
6644
  * @param height Image height in pixels.
6404
6645
  * @param options Optional options.
@@ -6417,9 +6658,9 @@ declare namespace vips {
6417
6658
 
6418
6659
  /**
6419
6660
  * Grid an image.
6420
- * @param tile_height chop into tiles this high.
6421
- * @param across number of tiles across.
6422
- * @param down number of tiles down.
6661
+ * @param tile_height Chop into tiles this high.
6662
+ * @param across Number of tiles across.
6663
+ * @param down Number of tiles down.
6423
6664
  * @return Output image.
6424
6665
  */
6425
6666
  grid(tile_height: number, across: number, down: number): Image;
@@ -6434,6 +6675,10 @@ declare namespace vips {
6434
6675
  * Q factor.
6435
6676
  */
6436
6677
  Q?: number
6678
+ /**
6679
+ * Number of bits per pixel.
6680
+ */
6681
+ bitdepth?: number
6437
6682
  /**
6438
6683
  * Enable lossless compression.
6439
6684
  */
@@ -6474,6 +6719,10 @@ declare namespace vips {
6474
6719
  * Q factor.
6475
6720
  */
6476
6721
  Q?: number
6722
+ /**
6723
+ * Number of bits per pixel.
6724
+ */
6725
+ bitdepth?: number
6477
6726
  /**
6478
6727
  * Enable lossless compression.
6479
6728
  */
@@ -6514,6 +6763,10 @@ declare namespace vips {
6514
6763
  * Q factor.
6515
6764
  */
6516
6765
  Q?: number
6766
+ /**
6767
+ * Number of bits per pixel.
6768
+ */
6769
+ bitdepth?: number
6517
6770
  /**
6518
6771
  * Enable lossless compression.
6519
6772
  */
@@ -7344,7 +7597,7 @@ declare namespace vips {
7344
7597
  */
7345
7598
  labelregions(options?: {
7346
7599
  /**
7347
- * Number of discrete contigious regions (output).
7600
+ * Number of discrete contiguous regions (output).
7348
7601
  */
7349
7602
  segments?: number | undefined
7350
7603
  }): Image;
@@ -7409,6 +7662,10 @@ declare namespace vips {
7409
7662
  * Apply gif transparency optimization.
7410
7663
  */
7411
7664
  optimize_gif_transparency?: boolean
7665
+ /**
7666
+ * Number of bits per pixel.
7667
+ */
7668
+ bitdepth?: number
7412
7669
  /**
7413
7670
  * Strip all metadata from image.
7414
7671
  */
@@ -7445,6 +7702,10 @@ declare namespace vips {
7445
7702
  * Apply gif transparency optimization.
7446
7703
  */
7447
7704
  optimize_gif_transparency?: boolean
7705
+ /**
7706
+ * Number of bits per pixel.
7707
+ */
7708
+ bitdepth?: number
7448
7709
  /**
7449
7710
  * Strip all metadata from image.
7450
7711
  */
@@ -7470,6 +7731,18 @@ declare namespace vips {
7470
7731
  * Interpolate pixels with this.
7471
7732
  */
7472
7733
  interpolate?: Interpolate
7734
+ /**
7735
+ * Background value.
7736
+ */
7737
+ background?: ArrayConstant
7738
+ /**
7739
+ * Images have premultiplied alpha.
7740
+ */
7741
+ premultiplied?: boolean
7742
+ /**
7743
+ * How to generate the extra pixels.
7744
+ */
7745
+ extend?: Extend | Enum
7473
7746
  }): Image;
7474
7747
 
7475
7748
  /**
@@ -7520,7 +7793,7 @@ declare namespace vips {
7520
7793
 
7521
7794
  /**
7522
7795
  * Apply a math operation to an image.
7523
- * @param math math to perform.
7796
+ * @param math Math to perform.
7524
7797
  * @return Output image.
7525
7798
  */
7526
7799
  math(math: OperationMath | Enum): Image;
@@ -7528,7 +7801,7 @@ declare namespace vips {
7528
7801
  /**
7529
7802
  * Binary math operations.
7530
7803
  * @param right Right-hand image argument.
7531
- * @param math2 math to perform.
7804
+ * @param math2 Math to perform.
7532
7805
  * @return Output image.
7533
7806
  */
7534
7807
  math2(right: Image | ArrayConstant, math2: OperationMath2 | Enum): Image;
@@ -7802,10 +8075,6 @@ declare namespace vips {
7802
8075
  * Maximum blend size.
7803
8076
  */
7804
8077
  mblend?: number
7805
- /**
7806
- * Band to search for features on.
7807
- */
7808
- bandno?: number
7809
8078
  }): Image;
7810
8079
 
7811
8080
  /**
@@ -7862,7 +8131,7 @@ declare namespace vips {
7862
8131
  phasecor(in2: Image | ArrayConstant): Image;
7863
8132
 
7864
8133
  /**
7865
- * Save image to png file.
8134
+ * Save image to file as png.
7866
8135
  * @param filename Filename to save to.
7867
8136
  * @param options Optional options.
7868
8137
  */
@@ -7880,7 +8149,7 @@ declare namespace vips {
7880
8149
  */
7881
8150
  profile?: string
7882
8151
  /**
7883
- * Libpng row filter flag(s).
8152
+ * Libspng row filter flag(s).
7884
8153
  */
7885
8154
  filter?: ForeignPngFilter | Flag
7886
8155
  /**
@@ -7918,7 +8187,7 @@ declare namespace vips {
7918
8187
  }): void;
7919
8188
 
7920
8189
  /**
7921
- * Save image to png buffer.
8190
+ * Save image to buffer as png.
7922
8191
  * @param options Optional options.
7923
8192
  * @return Buffer to save to.
7924
8193
  */
@@ -7936,7 +8205,7 @@ declare namespace vips {
7936
8205
  */
7937
8206
  profile?: string
7938
8207
  /**
7939
- * Libpng row filter flag(s).
8208
+ * Libspng row filter flag(s).
7940
8209
  */
7941
8210
  filter?: ForeignPngFilter | Flag
7942
8211
  /**
@@ -7992,7 +8261,7 @@ declare namespace vips {
7992
8261
  */
7993
8262
  profile?: string
7994
8263
  /**
7995
- * Libpng row filter flag(s).
8264
+ * Libspng row filter flag(s).
7996
8265
  */
7997
8266
  filter?: ForeignPngFilter | Flag
7998
8267
  /**
@@ -8235,7 +8504,7 @@ declare namespace vips {
8235
8504
 
8236
8505
  /**
8237
8506
  * Linear recombination with matrix.
8238
- * @param m matrix of coefficients.
8507
+ * @param m Matrix of coefficients.
8239
8508
  * @return Output image.
8240
8509
  */
8241
8510
  recomb(m: Image | ArrayConstant): Image;
@@ -8252,6 +8521,10 @@ declare namespace vips {
8252
8521
  * Resampling kernel.
8253
8522
  */
8254
8523
  kernel?: Kernel | Enum
8524
+ /**
8525
+ * Reducing gap.
8526
+ */
8527
+ gap?: number
8255
8528
  }): Image;
8256
8529
 
8257
8530
  /**
@@ -8265,6 +8538,10 @@ declare namespace vips {
8265
8538
  * Resampling kernel.
8266
8539
  */
8267
8540
  kernel?: Kernel | Enum
8541
+ /**
8542
+ * Reducing gap.
8543
+ */
8544
+ gap?: number
8268
8545
  }): Image;
8269
8546
 
8270
8547
  /**
@@ -8278,12 +8555,16 @@ declare namespace vips {
8278
8555
  * Resampling kernel.
8279
8556
  */
8280
8557
  kernel?: Kernel | Enum
8558
+ /**
8559
+ * Reducing gap.
8560
+ */
8561
+ gap?: number
8281
8562
  }): Image;
8282
8563
 
8283
8564
  /**
8284
8565
  * Relational operation on two images.
8285
8566
  * @param right Right-hand image argument.
8286
- * @param relational relational to perform.
8567
+ * @param relational Relational to perform.
8287
8568
  * @return Output image.
8288
8569
  */
8289
8570
  relational(right: Image | ArrayConstant, relational: OperationRelational | Enum): Image;
@@ -8314,6 +8595,10 @@ declare namespace vips {
8314
8595
  * Resampling kernel.
8315
8596
  */
8316
8597
  kernel?: Kernel | Enum
8598
+ /**
8599
+ * Reducing gap.
8600
+ */
8601
+ gap?: number
8317
8602
  /**
8318
8603
  * Vertical scale image by this factor.
8319
8604
  */
@@ -8374,7 +8659,7 @@ declare namespace vips {
8374
8659
 
8375
8660
  /**
8376
8661
  * Perform a round function on an image.
8377
- * @param round rounding operation to perform.
8662
+ * @param round Rounding operation to perform.
8378
8663
  * @return Output image.
8379
8664
  */
8380
8665
  round(round: OperationRound | Enum): Image;
@@ -8485,23 +8770,41 @@ declare namespace vips {
8485
8770
  * Shrink an image.
8486
8771
  * @param hshrink Horizontal shrink factor.
8487
8772
  * @param vshrink Vertical shrink factor.
8773
+ * @param options Optional options.
8488
8774
  * @return Output image.
8489
8775
  */
8490
- shrink(hshrink: number, vshrink: number): Image;
8776
+ shrink(hshrink: number, vshrink: number, options?: {
8777
+ /**
8778
+ * Round-up output dimensions.
8779
+ */
8780
+ ceil?: boolean
8781
+ }): Image;
8491
8782
 
8492
8783
  /**
8493
8784
  * Shrink an image horizontally.
8494
8785
  * @param hshrink Horizontal shrink factor.
8786
+ * @param options Optional options.
8495
8787
  * @return Output image.
8496
8788
  */
8497
- shrinkh(hshrink: number): Image;
8789
+ shrinkh(hshrink: number, options?: {
8790
+ /**
8791
+ * Round-up output dimensions.
8792
+ */
8793
+ ceil?: boolean
8794
+ }): Image;
8498
8795
 
8499
8796
  /**
8500
8797
  * Shrink an image vertically.
8501
8798
  * @param vshrink Vertical shrink factor.
8799
+ * @param options Optional options.
8502
8800
  * @return Output image.
8503
8801
  */
8504
- shrinkv(vshrink: number): Image;
8802
+ shrinkv(vshrink: number, options?: {
8803
+ /**
8804
+ * Round-up output dimensions.
8805
+ */
8806
+ ceil?: boolean
8807
+ }): Image;
8505
8808
 
8506
8809
  /**
8507
8810
  * Unit vector of pixel.
@@ -8674,6 +8977,10 @@ declare namespace vips {
8674
8977
  * Rendering intent.
8675
8978
  */
8676
8979
  intent?: Intent | Enum
8980
+ /**
8981
+ * Error level to fail on.
8982
+ */
8983
+ fail_on?: FailOn | Enum
8677
8984
  }): Image;
8678
8985
 
8679
8986
  /**
@@ -8884,6 +9191,110 @@ declare namespace vips {
8884
9191
  page_height?: number
8885
9192
  }): Uint8Array;
8886
9193
 
9194
+ /**
9195
+ * Save image to tiff target.
9196
+ * @param target Target to save to.
9197
+ * @param options Optional options.
9198
+ */
9199
+ tiffsaveTarget(target: Target, options?: {
9200
+ /**
9201
+ * Compression for this file.
9202
+ */
9203
+ compression?: ForeignTiffCompression | Enum
9204
+ /**
9205
+ * Q factor.
9206
+ */
9207
+ Q?: number
9208
+ /**
9209
+ * Compression prediction.
9210
+ */
9211
+ predictor?: ForeignTiffPredictor | Enum
9212
+ /**
9213
+ * Icc profile to embed.
9214
+ */
9215
+ profile?: string
9216
+ /**
9217
+ * Write a tiled tiff.
9218
+ */
9219
+ tile?: boolean
9220
+ /**
9221
+ * Tile width in pixels.
9222
+ */
9223
+ tile_width?: number
9224
+ /**
9225
+ * Tile height in pixels.
9226
+ */
9227
+ tile_height?: number
9228
+ /**
9229
+ * Write a pyramidal tiff.
9230
+ */
9231
+ pyramid?: boolean
9232
+ /**
9233
+ * Use 0 for white in 1-bit images.
9234
+ */
9235
+ miniswhite?: boolean
9236
+ /**
9237
+ * Write as a 1, 2, 4 or 8 bit image.
9238
+ */
9239
+ bitdepth?: number
9240
+ /**
9241
+ * Resolution unit.
9242
+ */
9243
+ resunit?: ForeignTiffResunit | Enum
9244
+ /**
9245
+ * Horizontal resolution in pixels/mm.
9246
+ */
9247
+ xres?: number
9248
+ /**
9249
+ * Vertical resolution in pixels/mm.
9250
+ */
9251
+ yres?: number
9252
+ /**
9253
+ * Write a bigtiff image.
9254
+ */
9255
+ bigtiff?: boolean
9256
+ /**
9257
+ * Write a properties document to imagedescription.
9258
+ */
9259
+ properties?: boolean
9260
+ /**
9261
+ * Method to shrink regions.
9262
+ */
9263
+ region_shrink?: RegionShrink | Enum
9264
+ /**
9265
+ * Zstd compression level.
9266
+ */
9267
+ level?: number
9268
+ /**
9269
+ * Enable webp lossless mode.
9270
+ */
9271
+ lossless?: boolean
9272
+ /**
9273
+ * Pyramid depth.
9274
+ */
9275
+ depth?: ForeignDzDepth | Enum
9276
+ /**
9277
+ * Save pyr layers as sub-ifds.
9278
+ */
9279
+ subifd?: boolean
9280
+ /**
9281
+ * Save with premultiplied alpha.
9282
+ */
9283
+ premultiply?: boolean
9284
+ /**
9285
+ * Strip all metadata from image.
9286
+ */
9287
+ strip?: boolean
9288
+ /**
9289
+ * Background value.
9290
+ */
9291
+ background?: ArrayConstant
9292
+ /**
9293
+ * Set page height for multipage save.
9294
+ */
9295
+ page_height?: number
9296
+ }): void;
9297
+
8887
9298
  /**
8888
9299
  * Cache an image as a set of tiles.
8889
9300
  * @param options Optional options.
@@ -9015,7 +9426,7 @@ declare namespace vips {
9015
9426
  */
9016
9427
  alpha_q?: number
9017
9428
  /**
9018
- * Optimise for minium size.
9429
+ * Optimise for minimum size.
9019
9430
  */
9020
9431
  min_size?: boolean
9021
9432
  /**
@@ -9034,6 +9445,10 @@ declare namespace vips {
9034
9445
  * Icc profile to embed.
9035
9446
  */
9036
9447
  profile?: string
9448
+ /**
9449
+ * Allow mixed encoding (might reduce file size).
9450
+ */
9451
+ mixed?: boolean
9037
9452
  /**
9038
9453
  * Strip all metadata from image.
9039
9454
  */
@@ -9079,7 +9494,7 @@ declare namespace vips {
9079
9494
  */
9080
9495
  alpha_q?: number
9081
9496
  /**
9082
- * Optimise for minium size.
9497
+ * Optimise for minimum size.
9083
9498
  */
9084
9499
  min_size?: boolean
9085
9500
  /**
@@ -9098,6 +9513,10 @@ declare namespace vips {
9098
9513
  * Icc profile to embed.
9099
9514
  */
9100
9515
  profile?: string
9516
+ /**
9517
+ * Allow mixed encoding (might reduce file size).
9518
+ */
9519
+ mixed?: boolean
9101
9520
  /**
9102
9521
  * Strip all metadata from image.
9103
9522
  */
@@ -9143,7 +9562,7 @@ declare namespace vips {
9143
9562
  */
9144
9563
  alpha_q?: number
9145
9564
  /**
9146
- * Optimise for minium size.
9565
+ * Optimise for minimum size.
9147
9566
  */
9148
9567
  min_size?: boolean
9149
9568
  /**
@@ -9162,6 +9581,10 @@ declare namespace vips {
9162
9581
  * Icc profile to embed.
9163
9582
  */
9164
9583
  profile?: string
9584
+ /**
9585
+ * Allow mixed encoding (might reduce file size).
9586
+ */
9587
+ mixed?: boolean
9165
9588
  /**
9166
9589
  * Strip all metadata from image.
9167
9590
  */
@@ -9200,4 +9623,9 @@ declare namespace vips {
9200
9623
  */
9201
9624
  zoom(xfac: number, yfac: number): Image;
9202
9625
  }
9203
- }
9626
+
9627
+ //#endregion
9628
+
9629
+ }
9630
+
9631
+ export = Vips;