@img/sharp-libvips-dev 1.2.4-rc.0 → 1.3.0-rc.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.
Files changed (55) hide show
  1. package/README.md +1 -1
  2. package/cplusplus/VError.cpp +1 -1
  3. package/cplusplus/VImage.cpp +66 -109
  4. package/cplusplus/vips-operators.cpp +172 -0
  5. package/include/archive.h +2 -2
  6. package/include/archive_entry.h +1 -1
  7. package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +8 -1
  8. package/include/glib-2.0/gio/gfileinfo.h +7 -0
  9. package/include/glib-2.0/gio/gio-visibility.h +34 -0
  10. package/include/glib-2.0/girepository/gi-visibility.h +34 -0
  11. package/include/glib-2.0/glib/glib-visibility.h +34 -0
  12. package/include/glib-2.0/glib/gmacros.h +4 -0
  13. package/include/glib-2.0/glib/gmarkup.h +2 -0
  14. package/include/glib-2.0/glib/gtypes.h +46 -4
  15. package/include/glib-2.0/glib/gunicode.h +13 -1
  16. package/include/glib-2.0/glib/gversionmacros.h +9 -0
  17. package/include/glib-2.0/glib-unix.h +4 -0
  18. package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
  19. package/include/glib-2.0/gobject/genums.h +2 -2
  20. package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
  21. package/include/harfbuzz/hb-version.h +2 -2
  22. package/include/libpng16/png.h +7 -7
  23. package/include/libpng16/pngconf.h +1 -1
  24. package/include/libpng16/pnglibconf.h +1 -1
  25. package/include/librsvg-2.0/librsvg/rsvg-version.h +2 -2
  26. package/include/librsvg-2.0/librsvg/rsvg.h +6 -1
  27. package/include/png.h +7 -7
  28. package/include/pngconf.h +1 -1
  29. package/include/pnglibconf.h +1 -1
  30. package/include/ultrahdr_api.h +898 -0
  31. package/include/vips/VError8.h +17 -14
  32. package/include/vips/VImage8.h +235 -32
  33. package/include/vips/arithmetic.h +9 -9
  34. package/include/vips/basic.h +11 -1
  35. package/include/vips/colour.h +19 -2
  36. package/include/vips/conversion.h +8 -8
  37. package/include/vips/convolution.h +1 -1
  38. package/include/vips/create.h +2 -2
  39. package/include/vips/draw.h +1 -1
  40. package/include/vips/enumtypes.h +3 -0
  41. package/include/vips/foreign.h +74 -15
  42. package/include/vips/header.h +22 -0
  43. package/include/vips/image.h +8 -5
  44. package/include/vips/morphology.h +1 -1
  45. package/include/vips/operation.h +2 -1
  46. package/include/vips/private.h +5 -10
  47. package/include/vips/region.h +7 -1
  48. package/include/vips/resample.h +2 -2
  49. package/include/vips/semaphore.h +1 -5
  50. package/include/vips/threadpool.h +0 -1
  51. package/include/vips/version.h +8 -8
  52. package/include/zlib.h +5 -5
  53. package/package.json +1 -1
  54. package/versions.json +8 -8
  55. package/include/spng.h +0 -537
@@ -79,7 +79,7 @@ typedef enum {
79
79
  VIPS_OPERATION_MATH_ASINH,
80
80
  VIPS_OPERATION_MATH_ACOSH,
81
81
  VIPS_OPERATION_MATH_ATANH,
82
- VIPS_OPERATION_MATH_LAST
82
+ VIPS_OPERATION_MATH_LAST /*< skip >*/
83
83
  } VipsOperationMath;
84
84
 
85
85
  /**
@@ -94,7 +94,7 @@ typedef enum {
94
94
  VIPS_OPERATION_MATH2_POW,
95
95
  VIPS_OPERATION_MATH2_WOP,
96
96
  VIPS_OPERATION_MATH2_ATAN2,
97
- VIPS_OPERATION_MATH2_LAST
97
+ VIPS_OPERATION_MATH2_LAST /*< skip >*/
98
98
  } VipsOperationMath2;
99
99
 
100
100
  /**
@@ -109,7 +109,7 @@ typedef enum {
109
109
  VIPS_OPERATION_ROUND_RINT,
110
110
  VIPS_OPERATION_ROUND_CEIL,
111
111
  VIPS_OPERATION_ROUND_FLOOR,
112
- VIPS_OPERATION_ROUND_LAST
112
+ VIPS_OPERATION_ROUND_LAST /*< skip >*/
113
113
  } VipsOperationRound;
114
114
 
115
115
  /**
@@ -130,7 +130,7 @@ typedef enum {
130
130
  VIPS_OPERATION_RELATIONAL_LESSEQ,
131
131
  VIPS_OPERATION_RELATIONAL_MORE,
132
132
  VIPS_OPERATION_RELATIONAL_MOREEQ,
133
- VIPS_OPERATION_RELATIONAL_LAST
133
+ VIPS_OPERATION_RELATIONAL_LAST /*< skip >*/
134
134
  } VipsOperationRelational;
135
135
 
136
136
  /**
@@ -149,7 +149,7 @@ typedef enum {
149
149
  VIPS_OPERATION_BOOLEAN_EOR,
150
150
  VIPS_OPERATION_BOOLEAN_LSHIFT,
151
151
  VIPS_OPERATION_BOOLEAN_RSHIFT,
152
- VIPS_OPERATION_BOOLEAN_LAST
152
+ VIPS_OPERATION_BOOLEAN_LAST /*< skip >*/
153
153
  } VipsOperationBoolean;
154
154
 
155
155
  /**
@@ -164,7 +164,7 @@ typedef enum {
164
164
  VIPS_OPERATION_COMPLEX_POLAR,
165
165
  VIPS_OPERATION_COMPLEX_RECT,
166
166
  VIPS_OPERATION_COMPLEX_CONJ,
167
- VIPS_OPERATION_COMPLEX_LAST
167
+ VIPS_OPERATION_COMPLEX_LAST /*< skip >*/
168
168
  } VipsOperationComplex;
169
169
 
170
170
  /**
@@ -174,8 +174,8 @@ typedef enum {
174
174
  * See also: [method@Image.complex2].
175
175
  */
176
176
  typedef enum {
177
- VIPS_OPERATION_COMPLEX2_CROSS_PHASE,
178
- VIPS_OPERATION_COMPLEX2_LAST
177
+ VIPS_OPERATION_COMPLEX2_CROSS_PHASE, /*< nick=cross-phase >*/
178
+ VIPS_OPERATION_COMPLEX2_LAST /*< skip >*/
179
179
  } VipsOperationComplex2;
180
180
 
181
181
  /**
@@ -188,7 +188,7 @@ typedef enum {
188
188
  typedef enum {
189
189
  VIPS_OPERATION_COMPLEXGET_REAL,
190
190
  VIPS_OPERATION_COMPLEXGET_IMAG,
191
- VIPS_OPERATION_COMPLEXGET_LAST
191
+ VIPS_OPERATION_COMPLEXGET_LAST /*< skip >*/
192
192
  } VipsOperationComplexget;
193
193
 
194
194
  VIPS_API
@@ -68,6 +68,16 @@
68
68
  #define VIPS_DEPRECATED_MACRO_FOR(f)
69
69
  #endif
70
70
 
71
+ #if !defined(VIPS_DISABLE_DEPRECATION_WARNINGS) && \
72
+ (G_GNUC_CHECK_VERSION(6, 1) || \
73
+ __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0))
74
+ #define VIPS_DEPRECATED_ENUMERATOR G_DEPRECATED
75
+ #define VIPS_DEPRECATED_ENUMERATOR_FOR(f) G_DEPRECATED_FOR(f)
76
+ #else
77
+ #define VIPS_DEPRECATED_ENUMERATOR
78
+ #define VIPS_DEPRECATED_ENUMERATOR_FOR(f)
79
+ #endif
80
+
71
81
  #ifdef __cplusplus
72
82
  extern "C" {
73
83
  #endif /*__cplusplus*/
@@ -97,7 +107,7 @@ typedef enum {
97
107
  VIPS_PRECISION_INTEGER,
98
108
  VIPS_PRECISION_FLOAT,
99
109
  VIPS_PRECISION_APPROXIMATE,
100
- VIPS_PRECISION_LAST
110
+ VIPS_PRECISION_LAST /*< skip >*/
101
111
  } VipsPrecision;
102
112
 
103
113
  #ifndef __GI_SCANNER__
@@ -105,13 +105,13 @@ typedef enum {
105
105
  * four standard ones.
106
106
  */
107
107
  VIPS_INTENT_AUTO = 32,
108
- VIPS_INTENT_LAST
108
+ VIPS_INTENT_LAST /*< skip >*/
109
109
  } VipsIntent;
110
110
 
111
111
  typedef enum {
112
112
  VIPS_PCS_LAB,
113
113
  VIPS_PCS_XYZ,
114
- VIPS_PCS_LAST
114
+ VIPS_PCS_LAST /*< skip >*/
115
115
  } VipsPCS;
116
116
 
117
117
  VIPS_API
@@ -203,6 +203,23 @@ VIPS_API
203
203
  int vips_XYZ2CMYK(VipsImage *in, VipsImage **out, ...)
204
204
  G_GNUC_NULL_TERMINATED;
205
205
 
206
+ VIPS_API
207
+ int vips_Oklab2XYZ(VipsImage *in, VipsImage **out, ...)
208
+ G_GNUC_NULL_TERMINATED;
209
+ VIPS_API
210
+ int vips_XYZ2Oklab(VipsImage *in, VipsImage **out, ...)
211
+ G_GNUC_NULL_TERMINATED;
212
+ VIPS_API
213
+ int vips_Oklch2Oklab(VipsImage *in, VipsImage **out, ...)
214
+ G_GNUC_NULL_TERMINATED;
215
+ VIPS_API
216
+ int vips_Oklab2Oklch(VipsImage *in, VipsImage **out, ...)
217
+ G_GNUC_NULL_TERMINATED;
218
+
219
+ VIPS_API
220
+ int vips_uhdr2scRGB(VipsImage *in, VipsImage **out, ...);
221
+ G_GNUC_NULL_TERMINATED
222
+
206
223
  VIPS_API
207
224
  int vips_profile_load(const char *name, VipsBlob **profile, ...)
208
225
  G_GNUC_NULL_TERMINATED;
@@ -45,7 +45,7 @@ typedef enum {
45
45
  VIPS_EXTEND_MIRROR,
46
46
  VIPS_EXTEND_WHITE,
47
47
  VIPS_EXTEND_BACKGROUND,
48
- VIPS_EXTEND_LAST
48
+ VIPS_EXTEND_LAST /*< skip >*/
49
49
  } VipsExtend;
50
50
 
51
51
  typedef enum {
@@ -58,20 +58,20 @@ typedef enum {
58
58
  VIPS_COMPASS_DIRECTION_SOUTH_EAST,
59
59
  VIPS_COMPASS_DIRECTION_SOUTH_WEST,
60
60
  VIPS_COMPASS_DIRECTION_NORTH_WEST,
61
- VIPS_COMPASS_DIRECTION_LAST
61
+ VIPS_COMPASS_DIRECTION_LAST /*< skip >*/
62
62
  } VipsCompassDirection;
63
63
 
64
64
  typedef enum {
65
65
  VIPS_DIRECTION_HORIZONTAL,
66
66
  VIPS_DIRECTION_VERTICAL,
67
- VIPS_DIRECTION_LAST
67
+ VIPS_DIRECTION_LAST /*< skip >*/
68
68
  } VipsDirection;
69
69
 
70
70
  typedef enum {
71
71
  VIPS_ALIGN_LOW,
72
72
  VIPS_ALIGN_CENTRE,
73
73
  VIPS_ALIGN_HIGH,
74
- VIPS_ALIGN_LAST
74
+ VIPS_ALIGN_LAST /*< skip >*/
75
75
  } VipsAlign;
76
76
 
77
77
  typedef enum {
@@ -79,7 +79,7 @@ typedef enum {
79
79
  VIPS_ANGLE_D90,
80
80
  VIPS_ANGLE_D180,
81
81
  VIPS_ANGLE_D270,
82
- VIPS_ANGLE_LAST
82
+ VIPS_ANGLE_LAST /*< skip >*/
83
83
  } VipsAngle;
84
84
 
85
85
  typedef enum {
@@ -91,7 +91,7 @@ typedef enum {
91
91
  VIPS_ANGLE45_D225,
92
92
  VIPS_ANGLE45_D270,
93
93
  VIPS_ANGLE45_D315,
94
- VIPS_ANGLE45_LAST
94
+ VIPS_ANGLE45_LAST /*< skip >*/
95
95
  } VipsAngle45;
96
96
 
97
97
  typedef enum {
@@ -102,7 +102,7 @@ typedef enum {
102
102
  VIPS_INTERESTING_LOW,
103
103
  VIPS_INTERESTING_HIGH,
104
104
  VIPS_INTERESTING_ALL,
105
- VIPS_INTERESTING_LAST
105
+ VIPS_INTERESTING_LAST /*< skip >*/
106
106
  } VipsInteresting;
107
107
 
108
108
  typedef enum {
@@ -131,7 +131,7 @@ typedef enum {
131
131
  VIPS_BLEND_MODE_SOFT_LIGHT,
132
132
  VIPS_BLEND_MODE_DIFFERENCE,
133
133
  VIPS_BLEND_MODE_EXCLUSION,
134
- VIPS_BLEND_MODE_LAST
134
+ VIPS_BLEND_MODE_LAST /*< skip >*/
135
135
  } VipsBlendMode;
136
136
 
137
137
  VIPS_API
@@ -42,7 +42,7 @@ typedef enum {
42
42
  VIPS_COMBINE_MAX,
43
43
  VIPS_COMBINE_SUM,
44
44
  VIPS_COMBINE_MIN,
45
- VIPS_COMBINE_LAST
45
+ VIPS_COMBINE_LAST /*< skip >*/
46
46
  } VipsCombine;
47
47
 
48
48
  VIPS_API
@@ -43,7 +43,7 @@ typedef enum {
43
43
  VIPS_TEXT_WRAP_CHAR,
44
44
  VIPS_TEXT_WRAP_WORD_CHAR,
45
45
  VIPS_TEXT_WRAP_NONE,
46
- VIPS_TEXT_WRAP_LAST
46
+ VIPS_TEXT_WRAP_LAST /*< skip >*/
47
47
  } VipsTextWrap;
48
48
 
49
49
  typedef enum {
@@ -51,7 +51,7 @@ typedef enum {
51
51
  VIPS_SDF_SHAPE_BOX,
52
52
  VIPS_SDF_SHAPE_ROUNDED_BOX,
53
53
  VIPS_SDF_SHAPE_LINE,
54
- VIPS_SDF_SHAPE_LAST
54
+ VIPS_SDF_SHAPE_LAST /*< skip >*/
55
55
  } VipsSdfShape;
56
56
 
57
57
  VIPS_API
@@ -45,7 +45,7 @@ extern "C" {
45
45
  typedef enum {
46
46
  VIPS_COMBINE_MODE_SET,
47
47
  VIPS_COMBINE_MODE_ADD,
48
- VIPS_COMBINE_MODE_LAST
48
+ VIPS_COMBINE_MODE_LAST /*< skip >*/
49
49
  } VipsCombineMode;
50
50
 
51
51
  VIPS_API
@@ -119,6 +119,9 @@ VIPS_API
119
119
  GType vips_foreign_ppm_format_get_type(void) G_GNUC_CONST;
120
120
  #define VIPS_TYPE_FOREIGN_PPM_FORMAT (vips_foreign_ppm_format_get_type())
121
121
  VIPS_API
122
+ GType vips_foreign_pdf_page_box_get_type(void) G_GNUC_CONST;
123
+ #define VIPS_TYPE_FOREIGN_PDF_PAGE_BOX (vips_foreign_pdf_page_box_get_type())
124
+ VIPS_API
122
125
  GType vips_foreign_dz_layout_get_type(void) G_GNUC_CONST;
123
126
  #define VIPS_TYPE_FOREIGN_DZ_LAYOUT (vips_foreign_dz_layout_get_type())
124
127
  VIPS_API
@@ -123,7 +123,7 @@ typedef enum {
123
123
  VIPS_FAIL_ON_TRUNCATED,
124
124
  VIPS_FAIL_ON_ERROR,
125
125
  VIPS_FAIL_ON_WARNING,
126
- VIPS_FAIL_ON_LAST
126
+ VIPS_FAIL_ON_LAST /*< skip >*/
127
127
  } VipsFailOn;
128
128
 
129
129
  #define VIPS_TYPE_FOREIGN_LOAD (vips_foreign_load_get_type())
@@ -362,7 +362,8 @@ typedef enum /*< flags >*/ {
362
362
  * @VIPS_FOREIGN_KEEP_XMP: keep XMP metadata
363
363
  * @VIPS_FOREIGN_KEEP_IPTC: keep IPTC metadata
364
364
  * @VIPS_FOREIGN_KEEP_ICC: keep ICC metadata
365
- * @VIPS_FOREIGN_KEEP_OTHER: keep other metadata (e.g. PNG comments and some TIFF tags)
365
+ * @VIPS_FOREIGN_KEEP_OTHER: keep other metadata (e.g. PNG comments)
366
+ * @VIPS_FOREIGN_KEEP_GAINMAP: keep the gainmap metadata
366
367
  * @VIPS_FOREIGN_KEEP_ALL: keep all metadata
367
368
  *
368
369
  * Which metadata to retain.
@@ -374,12 +375,14 @@ typedef enum /*< flags >*/ {
374
375
  VIPS_FOREIGN_KEEP_IPTC = 1 << 2,
375
376
  VIPS_FOREIGN_KEEP_ICC = 1 << 3,
376
377
  VIPS_FOREIGN_KEEP_OTHER = 1 << 4,
378
+ VIPS_FOREIGN_KEEP_GAINMAP = 1 << 5,
377
379
 
378
380
  VIPS_FOREIGN_KEEP_ALL = (VIPS_FOREIGN_KEEP_EXIF |
379
381
  VIPS_FOREIGN_KEEP_XMP |
380
382
  VIPS_FOREIGN_KEEP_IPTC |
381
383
  VIPS_FOREIGN_KEEP_ICC |
382
- VIPS_FOREIGN_KEEP_OTHER)
384
+ VIPS_FOREIGN_KEEP_OTHER |
385
+ VIPS_FOREIGN_KEEP_GAINMAP)
383
386
  } VipsForeignKeep;
384
387
 
385
388
  typedef struct _VipsForeignSave {
@@ -495,7 +498,7 @@ typedef enum {
495
498
  VIPS_FOREIGN_SUBSAMPLE_AUTO,
496
499
  VIPS_FOREIGN_SUBSAMPLE_ON,
497
500
  VIPS_FOREIGN_SUBSAMPLE_OFF,
498
- VIPS_FOREIGN_SUBSAMPLE_LAST
501
+ VIPS_FOREIGN_SUBSAMPLE_LAST /*< skip >*/
499
502
  } VipsForeignSubsample;
500
503
 
501
504
  VIPS_API
@@ -539,7 +542,7 @@ typedef enum {
539
542
  VIPS_FOREIGN_WEBP_PRESET_DRAWING,
540
543
  VIPS_FOREIGN_WEBP_PRESET_ICON,
541
544
  VIPS_FOREIGN_WEBP_PRESET_TEXT,
542
- VIPS_FOREIGN_WEBP_PRESET_LAST
545
+ VIPS_FOREIGN_WEBP_PRESET_LAST /*< skip >*/
543
546
  } VipsForeignWebpPreset;
544
547
 
545
548
  VIPS_API
@@ -597,7 +600,7 @@ typedef enum {
597
600
  VIPS_FOREIGN_TIFF_COMPRESSION_WEBP,
598
601
  VIPS_FOREIGN_TIFF_COMPRESSION_ZSTD,
599
602
  VIPS_FOREIGN_TIFF_COMPRESSION_JP2K,
600
- VIPS_FOREIGN_TIFF_COMPRESSION_LAST
603
+ VIPS_FOREIGN_TIFF_COMPRESSION_LAST /*< skip >*/
601
604
  } VipsForeignTiffCompression;
602
605
 
603
606
  /**
@@ -613,7 +616,7 @@ typedef enum {
613
616
  VIPS_FOREIGN_TIFF_PREDICTOR_NONE = 1,
614
617
  VIPS_FOREIGN_TIFF_PREDICTOR_HORIZONTAL = 2,
615
618
  VIPS_FOREIGN_TIFF_PREDICTOR_FLOAT = 3,
616
- VIPS_FOREIGN_TIFF_PREDICTOR_LAST
619
+ VIPS_FOREIGN_TIFF_PREDICTOR_LAST /*< skip >*/
617
620
  } VipsForeignTiffPredictor;
618
621
 
619
622
  /**
@@ -626,7 +629,7 @@ typedef enum {
626
629
  typedef enum {
627
630
  VIPS_FOREIGN_TIFF_RESUNIT_CM,
628
631
  VIPS_FOREIGN_TIFF_RESUNIT_INCH,
629
- VIPS_FOREIGN_TIFF_RESUNIT_LAST
632
+ VIPS_FOREIGN_TIFF_RESUNIT_LAST /*< skip >*/
630
633
  } VipsForeignTiffResunit;
631
634
 
632
635
  VIPS_API
@@ -716,6 +719,9 @@ VIPS_API
716
719
  int vips_magickload_buffer(void *buf, size_t len, VipsImage **out, ...)
717
720
  G_GNUC_NULL_TERMINATED;
718
721
  VIPS_API
722
+ int vips_magickload_source(VipsSource *source, VipsImage **out, ...)
723
+ G_GNUC_NULL_TERMINATED;
724
+ VIPS_API
719
725
  int vips_magicksave(VipsImage *in, const char *filename, ...)
720
726
  G_GNUC_NULL_TERMINATED;
721
727
  VIPS_API
@@ -790,7 +796,7 @@ typedef enum {
790
796
  VIPS_FOREIGN_PPM_FORMAT_PPM,
791
797
  VIPS_FOREIGN_PPM_FORMAT_PFM,
792
798
  VIPS_FOREIGN_PPM_FORMAT_PNM,
793
- VIPS_FOREIGN_PPM_FORMAT_LAST
799
+ VIPS_FOREIGN_PPM_FORMAT_LAST /*< skip >*/
794
800
  } VipsForeignPpmFormat;
795
801
 
796
802
  VIPS_API
@@ -832,6 +838,29 @@ VIPS_API
832
838
  int vips_radsave_target(VipsImage *in, VipsTarget *target, ...)
833
839
  G_GNUC_NULL_TERMINATED;
834
840
 
841
+ /**
842
+ * VipsForeignPdfPageBox:
843
+ * @VIPS_FOREIGN_PDF_PAGE_BOX_MEDIA: media box
844
+ * @VIPS_FOREIGN_PDF_PAGE_BOX_CROP: crop box
845
+ * @VIPS_FOREIGN_PDF_PAGE_BOX_TRIM: trim box
846
+ * @VIPS_FOREIGN_PDF_PAGE_BOX_BLEED: bleed box
847
+ * @VIPS_FOREIGN_PDF_PAGE_BOX_ART: art box
848
+ *
849
+ * Each page of a PDF document can contain multiple page boxes,
850
+ * also known as boundary boxes or print marks.
851
+ *
852
+ * Each page box defines a region of the complete page that
853
+ * should be rendered. The default region is the crop box.
854
+ */
855
+ typedef enum {
856
+ VIPS_FOREIGN_PDF_PAGE_BOX_MEDIA,
857
+ VIPS_FOREIGN_PDF_PAGE_BOX_CROP,
858
+ VIPS_FOREIGN_PDF_PAGE_BOX_TRIM,
859
+ VIPS_FOREIGN_PDF_PAGE_BOX_BLEED,
860
+ VIPS_FOREIGN_PDF_PAGE_BOX_ART,
861
+ VIPS_FOREIGN_PDF_PAGE_BOX_LAST /*< skip >*/
862
+ } VipsForeignPdfPageBox;
863
+
835
864
  VIPS_API
836
865
  int vips_pdfload(const char *filename, VipsImage **out, ...)
837
866
  G_GNUC_NULL_TERMINATED;
@@ -875,6 +904,36 @@ VIPS_API
875
904
  int vips_gifsave_target(VipsImage *in, VipsTarget *target, ...)
876
905
  G_GNUC_NULL_TERMINATED;
877
906
 
907
+ VIPS_API
908
+ int vips_dcrawload(const char *filename, VipsImage **out, ...)
909
+ G_GNUC_NULL_TERMINATED;
910
+ VIPS_API
911
+ int vips_dcrawload_buffer(void *buf, size_t len, VipsImage **out, ...)
912
+ G_GNUC_NULL_TERMINATED;
913
+ VIPS_API
914
+ int vips_dcrawload_source(VipsSource *source, VipsImage **out, ...)
915
+ G_GNUC_NULL_TERMINATED;
916
+
917
+ VIPS_API
918
+ int vips_uhdrload(const char *filename, VipsImage **out, ...)
919
+ G_GNUC_NULL_TERMINATED;
920
+ VIPS_API
921
+ int vips_uhdrload_buffer(void *buf, size_t len, VipsImage **out, ...)
922
+ G_GNUC_NULL_TERMINATED;
923
+ VIPS_API
924
+ int vips_uhdrload_source(VipsSource *source, VipsImage **out, ...)
925
+ G_GNUC_NULL_TERMINATED;
926
+
927
+ VIPS_API
928
+ int vips_uhdrsave(VipsImage *in, const char *filename, ...)
929
+ G_GNUC_NULL_TERMINATED;
930
+ VIPS_API
931
+ int vips_uhdrsave_buffer(VipsImage *in, void **buf, size_t *len, ...)
932
+ G_GNUC_NULL_TERMINATED;
933
+ VIPS_API
934
+ int vips_uhdrsave_target(VipsImage *in, VipsTarget *target, ...)
935
+ G_GNUC_NULL_TERMINATED;
936
+
878
937
  VIPS_API
879
938
  int vips_heifload(const char *filename, VipsImage **out, ...)
880
939
  G_GNUC_NULL_TERMINATED;
@@ -958,7 +1017,7 @@ typedef enum {
958
1017
  VIPS_FOREIGN_DZ_LAYOUT_GOOGLE,
959
1018
  VIPS_FOREIGN_DZ_LAYOUT_IIIF,
960
1019
  VIPS_FOREIGN_DZ_LAYOUT_IIIF3,
961
- VIPS_FOREIGN_DZ_LAYOUT_LAST
1020
+ VIPS_FOREIGN_DZ_LAYOUT_LAST /*< skip >*/
962
1021
  } VipsForeignDzLayout;
963
1022
 
964
1023
  /**
@@ -973,7 +1032,7 @@ typedef enum {
973
1032
  VIPS_FOREIGN_DZ_DEPTH_ONEPIXEL,
974
1033
  VIPS_FOREIGN_DZ_DEPTH_ONETILE,
975
1034
  VIPS_FOREIGN_DZ_DEPTH_ONE,
976
- VIPS_FOREIGN_DZ_DEPTH_LAST
1035
+ VIPS_FOREIGN_DZ_DEPTH_LAST /*< skip >*/
977
1036
  } VipsForeignDzDepth;
978
1037
 
979
1038
  /**
@@ -982,13 +1041,13 @@ typedef enum {
982
1041
  * @VIPS_FOREIGN_DZ_CONTAINER_ZIP: write tiles to a zip file
983
1042
  * @VIPS_FOREIGN_DZ_CONTAINER_SZI: write to a szi file
984
1043
  *
985
- * How many pyramid layers to create.
1044
+ * What container format to use.
986
1045
  */
987
1046
  typedef enum {
988
1047
  VIPS_FOREIGN_DZ_CONTAINER_FS,
989
1048
  VIPS_FOREIGN_DZ_CONTAINER_ZIP,
990
1049
  VIPS_FOREIGN_DZ_CONTAINER_SZI,
991
- VIPS_FOREIGN_DZ_CONTAINER_LAST
1050
+ VIPS_FOREIGN_DZ_CONTAINER_LAST /*< skip >*/
992
1051
  } VipsForeignDzContainer;
993
1052
 
994
1053
  VIPS_API
@@ -1017,7 +1076,7 @@ typedef enum {
1017
1076
  VIPS_FOREIGN_HEIF_COMPRESSION_AVC = 2,
1018
1077
  VIPS_FOREIGN_HEIF_COMPRESSION_JPEG = 3,
1019
1078
  VIPS_FOREIGN_HEIF_COMPRESSION_AV1 = 4,
1020
- VIPS_FOREIGN_HEIF_COMPRESSION_LAST
1079
+ VIPS_FOREIGN_HEIF_COMPRESSION_LAST /*< skip >*/
1021
1080
  } VipsForeignHeifCompression;
1022
1081
 
1023
1082
  /**
@@ -1039,7 +1098,7 @@ typedef enum {
1039
1098
  VIPS_FOREIGN_HEIF_ENCODER_RAV1E,
1040
1099
  VIPS_FOREIGN_HEIF_ENCODER_SVT,
1041
1100
  VIPS_FOREIGN_HEIF_ENCODER_X265,
1042
- VIPS_FOREIGN_HEIF_ENCODER_LAST
1101
+ VIPS_FOREIGN_HEIF_ENCODER_LAST /*< skip >*/
1043
1102
  } VipsForeignHeifEncoder;
1044
1103
 
1045
1104
  #ifdef __cplusplus
@@ -178,6 +178,20 @@ extern "C" {
178
178
  */
179
179
  #define VIPS_META_CONCURRENCY "concurrency"
180
180
 
181
+ /**
182
+ * VIPS_META_TILE_WIDTH
183
+ *
184
+ * If set, the width of the tiles for this image.
185
+ */
186
+ #define VIPS_META_TILE_WIDTH "tile-width"
187
+
188
+ /**
189
+ * VIPS_META_TILE_HEIGHT
190
+ *
191
+ * If set, the height of the tiles for this image.
192
+ */
193
+ #define VIPS_META_TILE_HEIGHT "tile-height"
194
+
181
195
  VIPS_API
182
196
  guint64 vips_format_sizeof(VipsBandFormat format);
183
197
  VIPS_API
@@ -185,6 +199,8 @@ guint64 vips_format_sizeof_unsafe(VipsBandFormat format);
185
199
 
186
200
  VIPS_API
187
201
  double vips_interpretation_max_alpha(VipsInterpretation interpretation);
202
+ VIPS_API
203
+ int vips_interpretation_bands(VipsInterpretation interpretation);
188
204
 
189
205
  VIPS_API
190
206
  int vips_image_get_width(const VipsImage *image);
@@ -233,6 +249,12 @@ gboolean vips_image_get_orientation_swap(VipsImage *image);
233
249
  VIPS_API
234
250
  int vips_image_get_concurrency(VipsImage *image, int default_concurrency);
235
251
  VIPS_API
252
+ int vips_image_get_tile_width(VipsImage *image);
253
+ VIPS_API
254
+ int vips_image_get_tile_height(VipsImage *image);
255
+ VIPS_API
256
+ VipsImage *vips_image_get_gainmap(VipsImage *image);
257
+ VIPS_API
236
258
  const void *vips_image_get_data(VipsImage *image);
237
259
 
238
260
  VIPS_API
@@ -112,7 +112,9 @@ typedef enum {
112
112
  VIPS_INTERPRETATION_MATRIX = 27,
113
113
  VIPS_INTERPRETATION_scRGB = 28,
114
114
  VIPS_INTERPRETATION_HSV = 29,
115
- VIPS_INTERPRETATION_LAST = 30
115
+ VIPS_INTERPRETATION_OKLAB = 30,
116
+ VIPS_INTERPRETATION_OKLCH = 31,
117
+ VIPS_INTERPRETATION_LAST = 32 /*< skip >*/
116
118
  } VipsInterpretation;
117
119
 
118
120
  typedef enum {
@@ -127,7 +129,7 @@ typedef enum {
127
129
  VIPS_FORMAT_COMPLEX = 7,
128
130
  VIPS_FORMAT_DOUBLE = 8,
129
131
  VIPS_FORMAT_DPCOMPLEX = 9,
130
- VIPS_FORMAT_LAST = 10
132
+ VIPS_FORMAT_LAST = 10 /*< skip >*/
131
133
  } VipsBandFormat;
132
134
 
133
135
  typedef enum {
@@ -135,14 +137,15 @@ typedef enum {
135
137
  VIPS_CODING_NONE = 0,
136
138
  VIPS_CODING_LABQ = 2,
137
139
  VIPS_CODING_RAD = 6,
138
- VIPS_CODING_LAST = 7
140
+ VIPS_CODING_LAST = 7 /*< skip >*/
139
141
  } VipsCoding;
140
142
 
141
143
  typedef enum {
142
144
  VIPS_ACCESS_RANDOM,
143
145
  VIPS_ACCESS_SEQUENTIAL,
144
- VIPS_ACCESS_SEQUENTIAL_UNBUFFERED,
145
- VIPS_ACCESS_LAST
146
+ VIPS_ACCESS_SEQUENTIAL_UNBUFFERED
147
+ VIPS_DEPRECATED_ENUMERATOR_FOR(VIPS_ACCESS_SEQUENTIAL),
148
+ VIPS_ACCESS_LAST /*< skip >*/
146
149
  } VipsAccess;
147
150
 
148
151
  typedef void *(*VipsStartFn)(VipsImage *out, void *a, void *b);
@@ -41,7 +41,7 @@ extern "C" {
41
41
  typedef enum {
42
42
  VIPS_OPERATION_MORPHOLOGY_ERODE,
43
43
  VIPS_OPERATION_MORPHOLOGY_DILATE,
44
- VIPS_OPERATION_MORPHOLOGY_LAST
44
+ VIPS_OPERATION_MORPHOLOGY_LAST /*< skip >*/
45
45
  } VipsOperationMorphology;
46
46
 
47
47
  VIPS_API
@@ -44,7 +44,8 @@ extern "C" {
44
44
  typedef enum /*< flags >*/ {
45
45
  VIPS_OPERATION_NONE = 0,
46
46
  VIPS_OPERATION_SEQUENTIAL = 1,
47
- VIPS_OPERATION_SEQUENTIAL_UNBUFFERED = 2,
47
+ VIPS_OPERATION_SEQUENTIAL_UNBUFFERED
48
+ VIPS_DEPRECATED_ENUMERATOR_FOR(VIPS_OPERATION_SEQUENTIAL) = 2,
48
49
  VIPS_OPERATION_NOCACHE = 4,
49
50
  VIPS_OPERATION_DEPRECATED = 8,
50
51
  VIPS_OPERATION_UNTRUSTED = 16,
@@ -44,16 +44,6 @@ extern "C" {
44
44
 
45
45
  #define VIPS_SPARE (8)
46
46
 
47
- /* Private to iofuncs: the minimum number of scanlines we add above and below
48
- * the window as a margin for slop.
49
- */
50
- #define VIPS__WINDOW_MARGIN_PIXELS (128)
51
-
52
- /* Private to iofuncs: add at least this many bytes above and below the window.
53
- * There's no point mapping just a few KB of a small image.
54
- */
55
- #define VIPS__WINDOW_MARGIN_BYTES (1024 * 1024 * 10)
56
-
57
47
  /* sizeof() a VIPS header on disc.
58
48
  */
59
49
  #define VIPS_SIZEOF_HEADER (64)
@@ -275,6 +265,11 @@ void vips__filename_split8(const char *name,
275
265
  VIPS_API
276
266
  char *vips__temp_name(const char *format);
277
267
 
268
+ /* Used by libvips tools.
269
+ */
270
+ VIPS_API
271
+ void vips__win32_terminate(int ret);
272
+
278
273
  #ifdef __cplusplus
279
274
  }
280
275
  #endif /*__cplusplus*/
@@ -72,6 +72,12 @@ extern "C" {
72
72
  * @VIPS_REGION_SHRINK_NEAREST: use the top-left pixel
73
73
  *
74
74
  * How to calculate the output pixels when shrinking a 2x2 region.
75
+ *
76
+ * Images with alpha (see [method@Image.hasalpha]) always shrink with
77
+ * [enum@Vips.RegionShrink.MEAN] and pixels scaled by alpha to avoid fringing.
78
+ *
79
+ * Set the image interpretation to [enum@Vips.Interpretation.MULTIBAND] to
80
+ * treat all bands equally.
75
81
  */
76
82
  typedef enum {
77
83
  VIPS_REGION_SHRINK_MEAN,
@@ -80,7 +86,7 @@ typedef enum {
80
86
  VIPS_REGION_SHRINK_MAX,
81
87
  VIPS_REGION_SHRINK_MIN,
82
88
  VIPS_REGION_SHRINK_NEAREST,
83
- VIPS_REGION_SHRINK_LAST
89
+ VIPS_REGION_SHRINK_LAST /*< skip >*/
84
90
  } VipsRegionShrink;
85
91
 
86
92
  /* Sub-area of image.
@@ -47,7 +47,7 @@ typedef enum {
47
47
  VIPS_KERNEL_LANCZOS3,
48
48
  VIPS_KERNEL_MKS2013,
49
49
  VIPS_KERNEL_MKS2021,
50
- VIPS_KERNEL_LAST
50
+ VIPS_KERNEL_LAST /*< skip >*/
51
51
  } VipsKernel;
52
52
 
53
53
  typedef enum {
@@ -55,7 +55,7 @@ typedef enum {
55
55
  VIPS_SIZE_UP,
56
56
  VIPS_SIZE_DOWN,
57
57
  VIPS_SIZE_FORCE,
58
- VIPS_SIZE_LAST
58
+ VIPS_SIZE_LAST /*< skip >*/
59
59
  } VipsSize;
60
60
 
61
61
  VIPS_API
@@ -53,11 +53,7 @@ typedef struct {
53
53
  int v;
54
54
 
55
55
  GMutex mutex;
56
-
57
- /* FIXME: sizeof(GCond) != sizeof(GCond *)
58
- * https://gitlab.gnome.org/GNOME/glib/-/issues/1256
59
- */
60
- GCond *cond;
56
+ GCond cond;
61
57
  } VipsSemaphore;
62
58
 
63
59
  VIPS_API
@@ -96,7 +96,6 @@ typedef struct _VipsThreadState {
96
96
  * debugging race conditions.
97
97
  */
98
98
  gboolean stall;
99
-
100
99
  } VipsThreadState;
101
100
 
102
101
  typedef struct _VipsThreadStateClass {