vips-cpp 8.17
libvips C++ binding
 
Loading...
Searching...
No Matches
VImage8.h
1// VIPS image wrapper
2
3/*
4
5 This file is part of VIPS.
6
7 VIPS is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 02110-1301 USA
21
22 */
23
24/*
25
26 These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
27
28 */
29
30#ifndef VIPS_VIMAGE_H
31#define VIPS_VIMAGE_H
32
33#include <list>
34#include <complex>
35#include <vector>
36
37#include <cstring>
38
39#include <vips/vips.h>
40
41VIPS_NAMESPACE_START
42
43/* Small utility things.
44 */
45
46VIPS_CPLUSPLUS_API std::vector<double> to_vectorv(int n, ...);
47VIPS_CPLUSPLUS_API std::vector<double> to_vector(double value);
48VIPS_CPLUSPLUS_API std::vector<double> to_vector(int n, double array[]);
49VIPS_CPLUSPLUS_API std::vector<double> negate(std::vector<double> value);
50VIPS_CPLUSPLUS_API std::vector<double> invert(std::vector<double> value);
51
56enum VSteal {
57 NOSTEAL = 0,
58 STEAL = 1
59};
60
67class VObject {
68private:
69 // can be NULL, see eg. VObject()
70 VipsObject *vobject;
71
72public:
79 explicit VObject(VipsObject *new_vobject, VSteal steal = STEAL)
80 : vobject(new_vobject)
81 {
82 // we allow NULL init, eg. "VImage a;"
83 g_assert(!new_vobject ||
84 VIPS_IS_OBJECT(new_vobject));
85
86#ifdef VIPS_DEBUG_VERBOSE
87 printf("VObject constructor, obj = %p, steal = %d\n",
88 new_vobject, steal);
89 if (new_vobject) {
90 printf(" obj ");
91 vips_object_print_name(VIPS_OBJECT(new_vobject));
92 printf("\n");
93 }
94#endif /*VIPS_DEBUG_VERBOSE*/
95
96 if (!steal && vobject) {
97#ifdef VIPS_DEBUG_VERBOSE
98 printf(" reffing object\n");
99#endif /*VIPS_DEBUG_VERBOSE*/
100 g_object_ref(vobject);
101 }
102 }
103
104 VObject() : vobject(nullptr)
105 {
106 }
107
108 VObject(const VObject &a) : vobject(a.vobject)
109 {
110 g_assert(!vobject ||
111 VIPS_IS_OBJECT(vobject));
112
113#ifdef VIPS_DEBUG_VERBOSE
114 printf("VObject copy constructor, obj = %p\n",
115 vobject);
116 printf(" reffing object\n");
117#endif /*VIPS_DEBUG_VERBOSE*/
118 if (vobject)
119 g_object_ref(vobject);
120 }
121
122 // assignment ... we must delete the old ref
123 VObject &
124 operator=(const VObject &a)
125 {
126#ifdef VIPS_DEBUG_VERBOSE
127 printf("VObject assignment\n");
128 printf(" reffing %p\n", a.vobject);
129 printf(" unreffing %p\n", vobject);
130#endif /*VIPS_DEBUG_VERBOSE*/
131
132 g_assert(!vobject ||
133 VIPS_IS_OBJECT(vobject));
134 g_assert(!a.vobject ||
135 VIPS_IS_OBJECT(a.vobject));
136
137 // delete the old ref at the end ... otherwise "a = a;" could
138 // unref before reffing again
139 if (a.vobject)
140 g_object_ref(a.vobject);
141 if (vobject)
142 g_object_unref(vobject);
143 vobject = a.vobject;
144
145 return *this;
146 }
147
148 // this mustn't be virtual: we want this class to only be a pointer,
149 // no vtable allowed
150 ~VObject()
151 {
152#ifdef VIPS_DEBUG_VERBOSE
153 printf("VObject destructor\n");
154 printf(" unreffing %p\n", vobject);
155#endif /*VIPS_DEBUG_VERBOSE*/
156
157 g_assert(!vobject ||
158 VIPS_IS_OBJECT(vobject));
159
160 if (vobject)
161 g_object_unref(vobject);
162 }
163
169 VipsObject *
171 {
172 g_assert(!vobject ||
173 VIPS_IS_OBJECT(vobject));
174
175 return vobject;
176 }
177
181 bool
182 is_null() const
183 {
184 return vobject == nullptr;
185 }
186};
187
188class VIPS_CPLUSPLUS_API VImage;
189class VIPS_CPLUSPLUS_API VInterpolate;
190class VIPS_CPLUSPLUS_API VRegion;
191class VIPS_CPLUSPLUS_API VSource;
192class VIPS_CPLUSPLUS_API VTarget;
193class VIPS_CPLUSPLUS_API VOption;
194
216class VOption {
217private:
218 struct Pair {
219 const char *name;
220
221 // the thing we pass to and from our caller
222 GValue value;
223
224 // an input or output parameter ... we guess the direction
225 // from the arg to set()
226 bool input;
227
228 // the pointer we write output values to
229 union {
230 bool *vbool;
231 int *vint;
232 double *vdouble;
233 VImage *vimage;
234 std::vector<double> *vvector;
235 VipsBlob **vblob;
236 };
237
238 explicit Pair(const char *name) : name(name), value(G_VALUE_INIT),
239 input(false), vimage(nullptr)
240 {
241 }
242
243 ~Pair()
244 {
245 g_value_unset(&value);
246 }
247 };
248
249 std::list<Pair *> options;
250
251public:
252 VOption() = default;
253
254 virtual ~VOption();
255
259 VOption *
260 set(const char *name, bool value);
261
266 VOption *
267 set(const char *name, int value);
268
272 VOption *
273 set(const char *name, guint64 value);
274
278 VOption *
279 set(const char *name, double value);
280
286 VOption *
287 set(const char *name, const char *value);
288
295 VOption *
296 set(const char *name, const VObject value);
297
303 VOption *
304 set(const char *name, std::vector<int> value);
305
311 VOption *
312 set(const char *name, std::vector<double> value);
313
319 VOption *
320 set(const char *name, std::vector<VImage> value);
321
328 VOption *
329 set(const char *name, VipsBlob *value);
330
334 VOption *
335 set(const char *name, bool *value);
336
340 VOption *
341 set(const char *name, int *value);
342
346 VOption *
347 set(const char *name, double *value);
348
352 VOption *
353 set(const char *name, VImage *value);
354
358 VOption *
359 set(const char *name, std::vector<double> *value);
360
365 VOption *
366 set(const char *name, VipsBlob **blob);
367
372 void
373 set_operation(VipsOperation *operation);
374
379 void
380 get_operation(VipsOperation *operation);
381};
382
398class VImage : public VObject {
399public:
400 using VObject::is_null;
401
408 explicit VImage(VipsImage *image, VSteal steal = STEAL)
409 : VObject((VipsObject *) image, steal)
410 {
411 }
412
416 VImage() : VObject(nullptr)
417 {
418 }
419
425 VipsImage *
426 get_image() const
427 {
428 return (VipsImage *) VObject::get_object();
429 }
430
434 int
435 width() const
436 {
437 return vips_image_get_width(get_image());
438 }
439
443 int
444 height() const
445 {
446 return vips_image_get_height(get_image());
447 }
448
452 int
453 bands() const
454 {
455 return vips_image_get_bands(get_image());
456 }
457
461 VipsBandFormat
462 format() const
463 {
464 return vips_image_get_format(get_image());
465 }
466
470 VipsCoding
471 coding() const
472 {
473 return vips_image_get_coding(get_image());
474 }
475
480 VipsInterpretation
482 {
483 return vips_image_get_interpretation(get_image());
484 }
485
490 VipsInterpretation
492 {
493 return vips_image_guess_interpretation(get_image());
494 }
495
499 double
500 xres() const
501 {
502 return vips_image_get_xres(get_image());
503 }
504
508 double
509 yres() const
510 {
511 return vips_image_get_yres(get_image());
512 }
513
517 int
518 xoffset() const
519 {
520 return vips_image_get_xoffset(get_image());
521 }
522
526 int
527 yoffset() const
528 {
529 return vips_image_get_yoffset(get_image());
530 }
531
535 bool
536 has_alpha() const
537 {
538 return vips_image_hasalpha(get_image());
539 }
540
545 const char *
546 filename() const
547 {
548 return vips_image_get_filename(get_image());
549 }
550
564 void
566 {
567 if (vips_image_inplace(this->get_image()))
568 throw(VError());
569 }
570
577 const void *
578 data() const
579 {
580 return vips_image_get_data(get_image());
581 }
582
586 void
587 set(const char *field, int value)
588 {
589 vips_image_set_int(this->get_image(), field, value);
590 }
591
597 void
598 set(const char *field, int *value, int n)
599 {
600 vips_image_set_array_int(this->get_image(), field, value, n);
601 }
602
608 void
609 set(const char *field, std::vector<int> value)
610 {
611 vips_image_set_array_int(this->get_image(), field, &value[0],
612 static_cast<int>(value.size()));
613 }
614
620 void
621 set(const char *field, double *value, int n)
622 {
623 vips_image_set_array_double(this->get_image(), field, value, n);
624 }
625
631 void
632 set(const char *field, std::vector<double> value)
633 {
634 vips_image_set_array_double(this->get_image(), field, &value[0],
635 static_cast<int>(value.size()));
636 }
637
641 void
642 set(const char *field, double value)
643 {
644 vips_image_set_double(this->get_image(), field, value);
645 }
646
652 void
653 set(const char *field, const char *value)
654 {
655 vips_image_set_string(this->get_image(), field, value);
656 }
657
665 void
666 set(const char *field,
667 VipsCallbackFn free_fn, void *data, size_t length)
668 {
669 vips_image_set_blob(this->get_image(), field,
670 free_fn, data, length);
671 }
672
677 GType
678 get_typeof(const char *field) const
679 {
680 return vips_image_get_typeof(this->get_image(), field);
681 }
682
688 int
689 get_int(const char *field) const
690 {
691 int value;
692
693 if (vips_image_get_int(this->get_image(), field, &value))
694 throw(VError());
695
696 return value;
697 }
698
705 void
706 get_array_int(const char *field, int **out, int *n) const
707 {
708 if (vips_image_get_array_int(this->get_image(),
709 field, out, n))
710 throw(VError());
711 }
712
718 std::vector<int>
719 get_array_int(const char *field) const
720 {
721 int length;
722 int *array;
723
724 if (vips_image_get_array_int(this->get_image(),
725 field, &array, &length))
726 throw(VError());
727
728 std::vector<int> vector(array, array + length);
729
730 return vector;
731 }
732
739 void
740 get_array_double(const char *field, double **out, int *n) const
741 {
742 if (vips_image_get_array_double(this->get_image(),
743 field, out, n))
744 throw(VError());
745 }
746
752 std::vector<double>
753 get_array_double(const char *field) const
754 {
755 int length;
756 double *array;
757
758 if (vips_image_get_array_double(this->get_image(),
759 field, &array, &length))
760 throw(VError());
761
762 std::vector<double> vector(array, array + length);
763
764 return vector;
765 }
766
772 double
773 get_double(const char *field) const
774 {
775 double value;
776
777 if (vips_image_get_double(this->get_image(), field, &value))
778 throw(VError());
779
780 return value;
781 }
782
789 const char *
790 get_string(const char *field) const
791 {
792 const char *value;
793
794 if (vips_image_get_string(this->get_image(), field, &value))
795 throw(VError());
796
797 return value;
798 }
799
806 const void *
807 get_blob(const char *field, size_t *length) const
808 {
809 const void *value;
810
811 if (vips_image_get_blob(this->get_image(), field,
812 &value, length))
813 throw(VError());
814
815 return value;
816 }
817
822 bool
823 remove(const char *name) const
824 {
825 return vips_image_remove(get_image(), name);
826 }
827
831 static VOption *
833 {
834 return new VOption();
835 }
836
841 static void
842 call_option_string(const char *operation_name,
843 const char *option_string, VOption *options = nullptr);
844
848 static void
849 call(const char *operation_name, VOption *options = nullptr);
850
855 static VImage
857 {
858 return VImage(vips_image_new_memory());
859 }
860
865 static VImage
866 new_temp_file(const char *file_format = ".v")
867 {
868 VipsImage *image;
869
870 if (!(image = vips_image_new_temp_file(file_format)))
871 throw(VError());
872
873 return VImage(image);
874 }
875
882 static VImage
883 new_from_file(const char *name, VOption *options = nullptr);
884
892 static VImage
893 new_from_buffer(const void *buf, size_t len,
894 const char *option_string, VOption *options = nullptr);
895
903 static VImage
904 new_from_buffer(const std::string &buf,
905 const char *option_string, VOption *options = nullptr);
906
913 static VImage
915 const char *option_string, VOption *options = nullptr);
916
921 static VImage
922 new_from_memory(const void *data, size_t size,
923 int width, int height, int bands, VipsBandFormat format)
924 {
925 VipsImage *image;
926
927 if (!(image = vips_image_new_from_memory(data, size,
929 throw(VError());
930
931 return VImage(image);
932 }
933
939 static VImage
940 new_from_memory_copy(const void *data, size_t size,
941 int width, int height, int bands, VipsBandFormat format)
942 {
943 VipsImage *image;
944
945 if (!(image = vips_image_new_from_memory_copy(data, size,
947 throw(VError());
948
949 return VImage(image);
950 }
951
959 static VImage
960 new_from_memory_steal(const void *data, size_t size,
961 int width, int height, int bands, VipsBandFormat format);
962
967 static VImage
968 new_matrix(int width, int height);
969
974 static VImage
975 new_matrix(int width, int height, double *array, int size)
976 {
977 VipsImage *image;
978
979 if (!(image = vips_image_new_matrix_from_array(width, height,
980 array, size)))
981 throw(VError());
982
983 return VImage(image);
984 }
985
990 static VImage
991 new_matrixv(int width, int height, ...);
992
997 VImage
998 new_from_image(std::vector<double> pixel) const
999 {
1000 VipsImage *image;
1001
1002 if (!(image = vips_image_new_from_image(this->get_image(),
1003 &pixel[0], static_cast<int>(pixel.size()))))
1004 throw(VError());
1005
1006 return VImage(image);
1007 }
1008
1013 VImage
1014 new_from_image(double pixel) const
1015 {
1016 return new_from_image(to_vectorv(1, pixel));
1017 }
1018
1031 VImage
1033 {
1034 VipsImage *image;
1035
1036 if (!(image = vips_image_copy_memory(this->get_image())))
1037 throw(VError());
1038
1039 return VImage(image);
1040 }
1041
1045 VImage write(VImage out) const;
1046
1053 void write_to_file(const char *name, VOption *options = nullptr) const;
1054
1068 void write_to_buffer(const char *suffix, void **buf, size_t *size,
1069 VOption *options = nullptr) const;
1070
1077 void write_to_target(const char *suffix, VTarget target,
1078 VOption *options = nullptr) const;
1079
1083 void *
1084 write_to_memory(size_t *size) const
1085 {
1086 void *result;
1087
1088 if (!(result = vips_image_write_to_memory(this->get_image(),
1089 size)))
1090 throw(VError());
1091
1092 return result;
1093 }
1094
1098 VRegion
1099 region() const;
1100
1104 VRegion
1105 region(VipsRect *rect) const;
1106
1110 VRegion
1111 region(int left, int top, int width, int height) const;
1112
1118 VImage
1119 linear(double a, double b, VOption *options = nullptr) const
1120 {
1121 return this->linear(to_vector(a), to_vector(b),
1122 options);
1123 }
1124
1130 VImage
1131 linear(std::vector<double> a, double b, VOption *options = nullptr) const
1132 {
1133 return this->linear(a, to_vector(b), options);
1134 }
1135
1141 VImage
1142 linear(double a, std::vector<double> b, VOption *options = nullptr) const
1143 {
1144 return this->linear(to_vector(a), b, options);
1145 }
1146
1150 std::vector<VImage> bandsplit(VOption *options = nullptr) const;
1151
1155 VImage bandjoin(VImage other, VOption *options = nullptr) const;
1156
1161 VImage
1162 bandjoin(double other, VOption *options = nullptr) const
1163 {
1164 return bandjoin(to_vector(other), options);
1165 }
1166
1171 VImage
1172 bandjoin(std::vector<double> other, VOption *options = nullptr) const
1173 {
1174 return bandjoin_const(other, options);
1175 }
1176
1180 VImage composite(VImage other, VipsBlendMode mode,
1181 VOption *options = nullptr) const;
1182
1186 std::complex<double> minpos(VOption *options = nullptr) const;
1187
1191 std::complex<double> maxpos(VOption *options = nullptr) const;
1192
1196 VImage
1197 fliphor(VOption *options = nullptr) const
1198 {
1199 return flip(VIPS_DIRECTION_HORIZONTAL, options);
1200 }
1201
1205 VImage
1206 flipver(VOption *options = nullptr) const
1207 {
1208 return flip(VIPS_DIRECTION_VERTICAL, options);
1209 }
1210
1214 VImage
1215 rot90(VOption *options = nullptr) const
1216 {
1217 return rot(VIPS_ANGLE_D90, options);
1218 }
1219
1223 VImage
1224 rot180(VOption *options = nullptr) const
1225 {
1226 return rot(VIPS_ANGLE_D180, options);
1227 }
1228
1232 VImage
1233 rot270(VOption *options = nullptr) const
1234 {
1235 return rot(VIPS_ANGLE_D270, options);
1236 }
1237
1243 VImage
1244 dilate(VImage mask, VOption *options = nullptr) const
1245 {
1246 return morph(mask, VIPS_OPERATION_MORPHOLOGY_DILATE,
1247 options);
1248 }
1249
1255 VImage
1256 erode(VImage mask, VOption *options = nullptr) const
1257 {
1258 return morph(mask, VIPS_OPERATION_MORPHOLOGY_ERODE,
1259 options);
1260 }
1261
1265 VImage
1266 median(int size = 3, VOption *options = nullptr) const
1267 {
1268 return rank(size, size, (size * size) / 2, options);
1269 }
1270
1274 VImage
1275 floor(VOption *options = nullptr) const
1276 {
1277 return round(VIPS_OPERATION_ROUND_FLOOR, options);
1278 }
1279
1283 VImage
1284 ceil(VOption *options = nullptr) const
1285 {
1286 return round(VIPS_OPERATION_ROUND_CEIL, options);
1287 }
1288
1292 VImage
1293 rint(VOption *options = nullptr) const
1294 {
1295 return round(VIPS_OPERATION_ROUND_RINT, options);
1296 }
1297
1304 VImage
1305 bandand(VOption *options = nullptr) const
1306 {
1307 return bandbool(VIPS_OPERATION_BOOLEAN_AND, options);
1308 }
1309
1316 VImage
1317 bandor(VOption *options = nullptr) const
1318 {
1319 return bandbool(VIPS_OPERATION_BOOLEAN_OR, options);
1320 }
1321
1328 VImage
1329 bandeor(VOption *options = nullptr) const
1330 {
1331 return bandbool(VIPS_OPERATION_BOOLEAN_EOR, options);
1332 }
1333
1337 VImage
1338 real(VOption *options = nullptr) const
1339 {
1340 return complexget(VIPS_OPERATION_COMPLEXGET_REAL, options);
1341 }
1342
1346 VImage
1347 imag(VOption *options = nullptr) const
1348 {
1349 return complexget(VIPS_OPERATION_COMPLEXGET_IMAG, options);
1350 }
1351
1355 VImage
1356 polar(VOption *options = nullptr) const
1357 {
1358 return complex(VIPS_OPERATION_COMPLEX_POLAR, options);
1359 }
1360
1364 VImage
1365 rect(VOption *options = nullptr) const
1366 {
1367 return complex(VIPS_OPERATION_COMPLEX_RECT, options);
1368 }
1369
1373 VImage
1374 conj(VOption *options = nullptr) const
1375 {
1376 return complex(VIPS_OPERATION_COMPLEX_CONJ, options);
1377 }
1378
1382 VImage
1383 sin(VOption *options = nullptr) const
1384 {
1385 return math(VIPS_OPERATION_MATH_SIN, options);
1386 }
1387
1391 VImage
1392 cos(VOption *options = nullptr) const
1393 {
1394 return math(VIPS_OPERATION_MATH_COS, options);
1395 }
1396
1400 VImage
1401 tan(VOption *options = nullptr) const
1402 {
1403 return math(VIPS_OPERATION_MATH_TAN, options);
1404 }
1405
1409 VImage
1410 asin(VOption *options = nullptr) const
1411 {
1412 return math(VIPS_OPERATION_MATH_ASIN, options);
1413 }
1414
1418 VImage
1419 acos(VOption *options = nullptr) const
1420 {
1421 return math(VIPS_OPERATION_MATH_ACOS, options);
1422 }
1423
1427 VImage
1428 atan(VOption *options = nullptr) const
1429 {
1430 return math(VIPS_OPERATION_MATH_ATAN, options);
1431 }
1432
1436 VImage
1437 sinh(VOption *options = nullptr) const
1438 {
1439 return math(VIPS_OPERATION_MATH_SINH, options);
1440 }
1441
1445 VImage
1446 cosh(VOption *options = nullptr) const
1447 {
1448 return math(VIPS_OPERATION_MATH_COSH, options);
1449 }
1450
1454 VImage
1455 tanh(VOption *options = nullptr) const
1456 {
1457 return math(VIPS_OPERATION_MATH_TANH, options);
1458 }
1459
1463 VImage
1464 asinh(VOption *options = nullptr) const
1465 {
1466 return math(VIPS_OPERATION_MATH_ASINH, options);
1467 }
1468
1472 VImage
1473 acosh(VOption *options = nullptr) const
1474 {
1475 return math(VIPS_OPERATION_MATH_ACOSH, options);
1476 }
1477
1481 VImage
1482 atanh(VOption *options = nullptr) const
1483 {
1484 return math(VIPS_OPERATION_MATH_ATANH, options);
1485 }
1486
1490 VImage
1491 log(VOption *options = nullptr) const
1492 {
1493 return math(VIPS_OPERATION_MATH_LOG, options);
1494 }
1495
1499 VImage
1500 log10(VOption *options = nullptr) const
1501 {
1502 return math(VIPS_OPERATION_MATH_LOG10, options);
1503 }
1504
1508 VImage
1509 exp(VOption *options = nullptr) const
1510 {
1511 return math(VIPS_OPERATION_MATH_EXP, options);
1512 }
1513
1517 VImage
1518 exp10(VOption *options = nullptr) const
1519 {
1520 return math(VIPS_OPERATION_MATH_EXP10, options);
1521 }
1522
1526 VImage
1527 pow(VImage other, VOption *options = nullptr) const
1528 {
1529 return math2(other, VIPS_OPERATION_MATH2_POW, options);
1530 }
1531
1535 VImage
1536 pow(double other, VOption *options = nullptr) const
1537 {
1538 return math2_const(VIPS_OPERATION_MATH2_POW,
1539 to_vector(other), options);
1540 }
1541
1545 VImage
1546 pow(std::vector<double> other, VOption *options = nullptr) const
1547 {
1548 return math2_const(VIPS_OPERATION_MATH2_POW,
1549 other, options);
1550 }
1551
1555 VImage
1556 wop(VImage other, VOption *options = nullptr) const
1557 {
1558 return math2(other, VIPS_OPERATION_MATH2_WOP, options);
1559 }
1560
1564 VImage
1565 wop(double other, VOption *options = nullptr) const
1566 {
1567 return math2_const(VIPS_OPERATION_MATH2_WOP,
1568 to_vector(other), options);
1569 }
1570
1574 VImage
1575 wop(std::vector<double> other, VOption *options = nullptr) const
1576 {
1577 return math2_const(VIPS_OPERATION_MATH2_WOP,
1578 other, options);
1579 }
1580
1584 VImage
1585 atan2(VImage other, VOption *options = nullptr) const
1586 {
1587 return math2(other, VIPS_OPERATION_MATH2_ATAN2, options);
1588 }
1589
1593 VImage
1594 atan2(double other, VOption *options = nullptr) const
1595 {
1596 return math2_const(VIPS_OPERATION_MATH2_ATAN2,
1597 to_vector(other), options);
1598 }
1599
1603 VImage
1604 atan2(std::vector<double> other, VOption *options = nullptr) const
1605 {
1606 return math2_const(VIPS_OPERATION_MATH2_ATAN2,
1607 other, options);
1608 }
1609
1614 VImage
1615 ifthenelse(std::vector<double> th, VImage el,
1616 VOption *options = nullptr) const
1617 {
1618 return ifthenelse(el.new_from_image(th), el, options);
1619 }
1620
1625 VImage
1626 ifthenelse(VImage th, std::vector<double> el,
1627 VOption *options = nullptr) const
1628 {
1629 return ifthenelse(th, th.new_from_image(el), options);
1630 }
1631
1636 VImage
1637 ifthenelse(std::vector<double> th, std::vector<double> el,
1638 VOption *options = nullptr) const
1639 {
1641 options);
1642 }
1643
1648 VImage
1649 ifthenelse(double th, VImage el, VOption *options = nullptr) const
1650 {
1651 return ifthenelse(to_vector(th), el, options);
1652 }
1653
1658 VImage
1659 ifthenelse(VImage th, double el, VOption *options = nullptr) const
1660 {
1661 return ifthenelse(th, to_vector(el), options);
1662 }
1663
1668 VImage
1669 ifthenelse(double th, double el, VOption *options = nullptr) const
1670 {
1671 return ifthenelse(to_vector(th), to_vector(el),
1672 options);
1673 }
1674
1687 void
1688 draw_circle(double ink, int cx, int cy, int radius, VOption *options = nullptr) const
1689 {
1690 return draw_circle(to_vector(ink), cx, cy, radius, options);
1691 }
1692
1702 void
1703 draw_line(double ink, int x1, int y1, int x2, int y2, VOption *options = nullptr) const
1704 {
1705 return draw_line(to_vector(ink), x1, y1, x2, y2, options);
1706 }
1707
1721 void
1722 draw_rect(double ink, int left, int top, int width, int height, VOption *options = nullptr) const
1723 {
1724 return draw_rect(to_vector(ink), left, top, width, height, options);
1725 }
1726
1734 void
1735 draw_point(double ink, int x, int y, VOption *options = nullptr) const
1736 {
1737 return draw_rect(ink, x, y, 1, 1, options);
1738 }
1739
1747 void
1748 draw_point(std::vector<double> ink, int x, int y, VOption *options = nullptr) const
1749 {
1750 return draw_rect(ink, x, y, 1, 1, options);
1751 }
1752
1765 void
1766 draw_flood(double ink, int x, int y, VOption *options = nullptr) const
1767 {
1768 return draw_flood(to_vector(ink), x, y, options);
1769 }
1770
1779 void
1780 draw_mask(double ink, VImage mask, int x, int y, VOption *options = nullptr) const
1781 {
1782 return draw_mask(to_vector(ink), mask, x, y, options);
1783 }
1784
1806 static VImage thumbnail_buffer(void *buf, size_t len, int width, VOption *options = nullptr);
1807
1808 // Operator overloads
1809
1810 VImage operator[](int index) const;
1811
1812 std::vector<double> operator()(int x, int y) const;
1813
1814 friend VIPS_CPLUSPLUS_API VImage
1815 operator+(const VImage a, const VImage b);
1816 friend VIPS_CPLUSPLUS_API VImage
1817 operator+(const double a, const VImage b);
1818 friend VIPS_CPLUSPLUS_API VImage
1819 operator+(const VImage a, const double b);
1820 friend VIPS_CPLUSPLUS_API VImage
1821 operator+(const std::vector<double> a, const VImage b);
1822 friend VIPS_CPLUSPLUS_API VImage
1823 operator+(const VImage a, const std::vector<double> b);
1824
1825 friend VIPS_CPLUSPLUS_API VImage &
1826 operator+=(VImage &a, const VImage b);
1827 friend VIPS_CPLUSPLUS_API VImage &
1828 operator+=(VImage &a, const double b);
1829 friend VIPS_CPLUSPLUS_API VImage &
1830 operator+=(VImage &a, const std::vector<double> b);
1831
1832 friend VIPS_CPLUSPLUS_API VImage
1833 operator-(const VImage a, const VImage b);
1834 friend VIPS_CPLUSPLUS_API VImage
1835 operator-(const double a, const VImage b);
1836 friend VIPS_CPLUSPLUS_API VImage
1837 operator-(const VImage a, const double b);
1838 friend VIPS_CPLUSPLUS_API VImage
1839 operator-(const std::vector<double> a, const VImage b);
1840 friend VIPS_CPLUSPLUS_API VImage
1841 operator-(const VImage a, const std::vector<double> b);
1842
1843 friend VIPS_CPLUSPLUS_API VImage &
1844 operator-=(VImage &a, const VImage b);
1845 friend VIPS_CPLUSPLUS_API VImage &
1846 operator-=(VImage &a, const double b);
1847 friend VIPS_CPLUSPLUS_API VImage &
1848 operator-=(VImage &a, const std::vector<double> b);
1849
1850 friend VIPS_CPLUSPLUS_API VImage
1851 operator-(const VImage a);
1852
1853 friend VIPS_CPLUSPLUS_API VImage
1854 operator*(const VImage a, const VImage b);
1855 friend VIPS_CPLUSPLUS_API VImage
1856 operator*(const double a, const VImage b);
1857 friend VIPS_CPLUSPLUS_API VImage
1858 operator*(const VImage a, const double b);
1859 friend VIPS_CPLUSPLUS_API VImage
1860 operator*(const std::vector<double> a, const VImage b);
1861 friend VIPS_CPLUSPLUS_API VImage
1862 operator*(const VImage a, const std::vector<double> b);
1863
1864 friend VIPS_CPLUSPLUS_API VImage &
1865 operator*=(VImage &a, const VImage b);
1866 friend VIPS_CPLUSPLUS_API VImage &
1867 operator*=(VImage &a, const double b);
1868 friend VIPS_CPLUSPLUS_API VImage &
1869 operator*=(VImage &a, const std::vector<double> b);
1870
1871 friend VIPS_CPLUSPLUS_API VImage
1872 operator/(const VImage a, const VImage b);
1873 friend VIPS_CPLUSPLUS_API VImage
1874 operator/(const double a, const VImage b);
1875 friend VIPS_CPLUSPLUS_API VImage
1876 operator/(const VImage a, const double b);
1877 friend VIPS_CPLUSPLUS_API VImage
1878 operator/(const std::vector<double> a, const VImage b);
1879 friend VIPS_CPLUSPLUS_API VImage
1880 operator/(const VImage a, const std::vector<double> b);
1881
1882 friend VIPS_CPLUSPLUS_API VImage &
1883 operator/=(VImage &a, const VImage b);
1884 friend VIPS_CPLUSPLUS_API VImage &
1885 operator/=(VImage &a, const double b);
1886 friend VIPS_CPLUSPLUS_API VImage &
1887 operator/=(VImage &a, const std::vector<double> b);
1888
1889 friend VIPS_CPLUSPLUS_API VImage
1890 operator%(const VImage a, const VImage b);
1891 friend VIPS_CPLUSPLUS_API VImage
1892 operator%(const VImage a, const double b);
1893 friend VIPS_CPLUSPLUS_API VImage
1894 operator%(const VImage a, const std::vector<double> b);
1895
1896 friend VIPS_CPLUSPLUS_API VImage &
1897 operator%=(VImage &a, const VImage b);
1898 friend VIPS_CPLUSPLUS_API VImage &
1899 operator%=(VImage &a, const double b);
1900 friend VIPS_CPLUSPLUS_API VImage &
1901 operator%=(VImage &a, const std::vector<double> b);
1902
1903 friend VIPS_CPLUSPLUS_API VImage
1904 operator<(const VImage a, const VImage b);
1905 friend VIPS_CPLUSPLUS_API VImage
1906 operator<(const double a, const VImage b);
1907 friend VIPS_CPLUSPLUS_API VImage
1908 operator<(const VImage a, const double b);
1909 friend VIPS_CPLUSPLUS_API VImage
1910 operator<(const std::vector<double> a, const VImage b);
1911 friend VIPS_CPLUSPLUS_API VImage
1912 operator<(const VImage a, const std::vector<double> b);
1913
1914 friend VIPS_CPLUSPLUS_API VImage
1915 operator<=(const VImage a, const VImage b);
1916 friend VIPS_CPLUSPLUS_API VImage
1917 operator<=(const double a, const VImage b);
1918 friend VIPS_CPLUSPLUS_API VImage
1919 operator<=(const VImage a, const double b);
1920 friend VIPS_CPLUSPLUS_API VImage
1921 operator<=(const std::vector<double> a, const VImage b);
1922 friend VIPS_CPLUSPLUS_API VImage
1923 operator<=(const VImage a, const std::vector<double> b);
1924
1925 friend VIPS_CPLUSPLUS_API VImage
1926 operator>(const VImage a, const VImage b);
1927 friend VIPS_CPLUSPLUS_API VImage
1928 operator>(const double a, const VImage b);
1929 friend VIPS_CPLUSPLUS_API VImage
1930 operator>(const VImage a, const double b);
1931 friend VIPS_CPLUSPLUS_API VImage
1932 operator>(const std::vector<double> a, const VImage b);
1933 friend VIPS_CPLUSPLUS_API VImage
1934 operator>(const VImage a, const std::vector<double> b);
1935
1936 friend VIPS_CPLUSPLUS_API VImage
1937 operator>=(const VImage a, const VImage b);
1938 friend VIPS_CPLUSPLUS_API VImage
1939 operator>=(const double a, const VImage b);
1940 friend VIPS_CPLUSPLUS_API VImage
1941 operator>=(const VImage a, const double b);
1942 friend VIPS_CPLUSPLUS_API VImage
1943 operator>=(const std::vector<double> a, const VImage b);
1944 friend VIPS_CPLUSPLUS_API VImage
1945 operator>=(const VImage a, const std::vector<double> b);
1946
1947 friend VIPS_CPLUSPLUS_API VImage
1948 operator==(const VImage a, const VImage b);
1949 friend VIPS_CPLUSPLUS_API VImage
1950 operator==(const double a, const VImage b);
1951 friend VIPS_CPLUSPLUS_API VImage
1952 operator==(const VImage a, const double b);
1953 friend VIPS_CPLUSPLUS_API VImage
1954 operator==(const std::vector<double> a, const VImage b);
1955 friend VIPS_CPLUSPLUS_API VImage
1956 operator==(const VImage a, const std::vector<double> b);
1957
1958 friend VIPS_CPLUSPLUS_API VImage
1959 operator!=(const VImage a, const VImage b);
1960 friend VIPS_CPLUSPLUS_API VImage
1961 operator!=(const double a, const VImage b);
1962 friend VIPS_CPLUSPLUS_API VImage
1963 operator!=(const VImage a, const double b);
1964 friend VIPS_CPLUSPLUS_API VImage
1965 operator!=(const std::vector<double> a, const VImage b);
1966 friend VIPS_CPLUSPLUS_API VImage
1967 operator!=(const VImage a, const std::vector<double> b);
1968
1969 friend VIPS_CPLUSPLUS_API VImage
1970 operator&(const VImage a, const VImage b);
1971 friend VIPS_CPLUSPLUS_API VImage
1972 operator&(const double a, const VImage b);
1973 friend VIPS_CPLUSPLUS_API VImage
1974 operator&(const VImage a, const double b);
1975 friend VIPS_CPLUSPLUS_API VImage
1976 operator&(const std::vector<double> a, const VImage b);
1977 friend VIPS_CPLUSPLUS_API VImage
1978 operator&(const VImage a, const std::vector<double> b);
1979
1980 friend VIPS_CPLUSPLUS_API VImage &
1981 operator&=(VImage &a, const VImage b);
1982 friend VIPS_CPLUSPLUS_API VImage &
1983 operator&=(VImage &a, const double b);
1984 friend VIPS_CPLUSPLUS_API VImage &
1985 operator&=(VImage &a, const std::vector<double> b);
1986
1987 friend VIPS_CPLUSPLUS_API VImage
1988 operator|(const VImage a, const VImage b);
1989 friend VIPS_CPLUSPLUS_API VImage
1990 operator|(const double a, const VImage b);
1991 friend VIPS_CPLUSPLUS_API VImage
1992 operator|(const VImage a, const double b);
1993 friend VIPS_CPLUSPLUS_API VImage
1994 operator|(const std::vector<double> a, const VImage b);
1995 friend VIPS_CPLUSPLUS_API VImage
1996 operator|(const VImage a, const std::vector<double> b);
1997
1998 friend VIPS_CPLUSPLUS_API VImage &
1999 operator|=(VImage &a, const VImage b);
2000 friend VIPS_CPLUSPLUS_API VImage &
2001 operator|=(VImage &a, const double b);
2002 friend VIPS_CPLUSPLUS_API VImage &
2003 operator|=(VImage &a, const std::vector<double> b);
2004
2005 friend VIPS_CPLUSPLUS_API VImage
2006 operator^(const VImage a, const VImage b);
2007 friend VIPS_CPLUSPLUS_API VImage
2008 operator^(const double a, const VImage b);
2009 friend VIPS_CPLUSPLUS_API VImage
2010 operator^(const VImage a, const double b);
2011 friend VIPS_CPLUSPLUS_API VImage
2012 operator^(const std::vector<double> a, const VImage b);
2013 friend VIPS_CPLUSPLUS_API VImage
2014 operator^(const VImage a, const std::vector<double> b);
2015
2016 friend VIPS_CPLUSPLUS_API VImage &
2017 operator^=(VImage &a, const VImage b);
2018 friend VIPS_CPLUSPLUS_API VImage &
2019 operator^=(VImage &a, const double b);
2020 friend VIPS_CPLUSPLUS_API VImage &
2021 operator^=(VImage &a, const std::vector<double> b);
2022
2023 friend VIPS_CPLUSPLUS_API VImage
2024 operator<<(const VImage a, const VImage b);
2025 friend VIPS_CPLUSPLUS_API VImage
2026 operator<<(const VImage a, const double b);
2027 friend VIPS_CPLUSPLUS_API VImage
2028 operator<<(const VImage a, const std::vector<double> b);
2029
2030 friend VIPS_CPLUSPLUS_API VImage &
2031 operator<<=(VImage &a, const VImage b);
2032 friend VIPS_CPLUSPLUS_API VImage &
2033 operator<<=(VImage &a, const double b);
2034 friend VIPS_CPLUSPLUS_API VImage &
2035 operator<<=(VImage &a, const std::vector<double> b);
2036
2037 friend VIPS_CPLUSPLUS_API VImage
2038 operator>>(const VImage a, const VImage b);
2039 friend VIPS_CPLUSPLUS_API VImage
2040 operator>>(const VImage a, const double b);
2041 friend VIPS_CPLUSPLUS_API VImage
2042 operator>>(const VImage a, const std::vector<double> b);
2043
2044 friend VIPS_CPLUSPLUS_API VImage &
2045 operator>>=(VImage &a, const VImage b);
2046 friend VIPS_CPLUSPLUS_API VImage &
2047 operator>>=(VImage &a, const double b);
2048 friend VIPS_CPLUSPLUS_API VImage &
2049 operator>>=(VImage &a, const std::vector<double> b);
2050
2051 // Compat operations
2052
2053 static VImage
2054 new_from_memory_steal(void *data, size_t size,
2055 int width, int height, int bands, VipsBandFormat format);
2056
2069 G_DEPRECATED_FOR(rawsave_target)
2070 void rawsave_fd(int fd, VOption *options = nullptr) const;
2071
2072 /* Automatically generated members.
2073 *
2074 * Rebuild with:
2075 *
2076 * meson compile -Cbuild vips-operators-header
2077 *
2078 * Then delete from here to the end of the class and paste in
2079 * vips-operators.h. We could just #include "vips-operators.h", but
2080 * that confuses doxygen.
2081 */
2082
2083 // headers for vips operations
2084 // this file is generated automatically, do not edit!
2085 // clang-format off
2086
2092 VImage CMC2LCh(VOption *options = nullptr) const;
2093
2099 VImage CMYK2XYZ(VOption *options = nullptr) const;
2100
2106 VImage HSV2sRGB(VOption *options = nullptr) const;
2107
2113 VImage LCh2CMC(VOption *options = nullptr) const;
2114
2120 VImage LCh2Lab(VOption *options = nullptr) const;
2121
2127 VImage Lab2LCh(VOption *options = nullptr) const;
2128
2134 VImage Lab2LabQ(VOption *options = nullptr) const;
2135
2141 VImage Lab2LabS(VOption *options = nullptr) const;
2142
2152 VImage Lab2XYZ(VOption *options = nullptr) const;
2153
2159 VImage LabQ2Lab(VOption *options = nullptr) const;
2160
2166 VImage LabQ2LabS(VOption *options = nullptr) const;
2167
2173 VImage LabQ2sRGB(VOption *options = nullptr) const;
2174
2180 VImage LabS2Lab(VOption *options = nullptr) const;
2181
2187 VImage LabS2LabQ(VOption *options = nullptr) const;
2188
2194 VImage XYZ2CMYK(VOption *options = nullptr) const;
2195
2205 VImage XYZ2Lab(VOption *options = nullptr) const;
2206
2212 VImage XYZ2Yxy(VOption *options = nullptr) const;
2213
2219 VImage XYZ2scRGB(VOption *options = nullptr) const;
2220
2226 VImage Yxy2XYZ(VOption *options = nullptr) const;
2227
2233 VImage abs(VOption *options = nullptr) const;
2234
2241 VImage add(VImage right, VOption *options = nullptr) const;
2242
2248 VImage addalpha(VOption *options = nullptr) const;
2249
2268 VImage affine(std::vector<double> matrix, VOption *options = nullptr) const;
2269
2283 static VImage analyzeload(const char *filename, VOption *options = nullptr);
2284
2301 static VImage arrayjoin(std::vector<VImage> in, VOption *options = nullptr);
2302
2308 VImage autorot(VOption *options = nullptr) const;
2309
2315 double avg(VOption *options = nullptr) const;
2316
2323 VImage bandbool(VipsOperationBoolean boolean, VOption *options = nullptr) const;
2324
2334 VImage bandfold(VOption *options = nullptr) const;
2335
2342 static VImage bandjoin(std::vector<VImage> in, VOption *options = nullptr);
2343
2350 VImage bandjoin_const(std::vector<double> c, VOption *options = nullptr) const;
2351
2357 VImage bandmean(VOption *options = nullptr) const;
2358
2369 static VImage bandrank(std::vector<VImage> in, VOption *options = nullptr);
2370
2380 VImage bandunfold(VOption *options = nullptr) const;
2381
2393 static VImage black(int width, int height, VOption *options = nullptr);
2394
2402 VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options = nullptr) const;
2403
2411 VImage boolean_const(VipsOperationBoolean boolean, std::vector<double> c, VOption *options = nullptr) const;
2412
2418 VImage buildlut(VOption *options = nullptr) const;
2419
2425 VImage byteswap(VOption *options = nullptr) const;
2426
2438 G_DEPRECATED
2439 VImage cache(VOption *options = nullptr) const;
2440
2451 VImage canny(VOption *options = nullptr) const;
2452
2459 VImage case_image(std::vector<VImage> cases, VOption *options = nullptr) const;
2460
2471 VImage cast(VipsBandFormat format, VOption *options = nullptr) const;
2472
2483 VImage clamp(VOption *options = nullptr) const;
2484
2495 VImage colourspace(VipsInterpretation space, VOption *options = nullptr) const;
2496
2512 VImage compass(VImage mask, VOption *options = nullptr) const;
2513
2520 VImage complex(VipsOperationComplex cmplx, VOption *options = nullptr) const;
2521
2529 VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options = nullptr) const;
2530
2537 VImage complexform(VImage right, VOption *options = nullptr) const;
2538
2545 VImage complexget(VipsOperationComplexget get, VOption *options = nullptr) const;
2546
2561 static VImage composite(std::vector<VImage> in, std::vector<int> mode, VOption *options = nullptr);
2562
2577 VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options = nullptr) const;
2578
2591 VImage conv(VImage mask, VOption *options = nullptr) const;
2592
2604 VImage conva(VImage mask, VOption *options = nullptr) const;
2605
2616 VImage convasep(VImage mask, VOption *options = nullptr) const;
2617
2624 VImage convf(VImage mask, VOption *options = nullptr) const;
2625
2632 VImage convi(VImage mask, VOption *options = nullptr) const;
2633
2646 VImage convsep(VImage mask, VOption *options = nullptr) const;
2647
2666 VImage copy(VOption *options = nullptr) const;
2667
2674 double countlines(VipsDirection direction, VOption *options = nullptr) const;
2675
2685 VImage crop(int left, int top, int width, int height, VOption *options = nullptr) const;
2686
2704 static VImage csvload(const char *filename, VOption *options = nullptr);
2705
2723 static VImage csvload_source(VSource source, VOption *options = nullptr);
2724
2738 void csvsave(const char *filename, VOption *options = nullptr) const;
2739
2753 void csvsave_target(VTarget target, VOption *options = nullptr) const;
2754
2761 VImage dE00(VImage right, VOption *options = nullptr) const;
2762
2769 VImage dE76(VImage right, VOption *options = nullptr) const;
2770
2777 VImage dECMC(VImage right, VOption *options = nullptr) const;
2778
2784 double deviate(VOption *options = nullptr) const;
2785
2792 VImage divide(VImage right, VOption *options = nullptr) const;
2793
2806 void draw_circle(std::vector<double> ink, int cx, int cy, int radius, VOption *options = nullptr) const;
2807
2820 void draw_flood(std::vector<double> ink, int x, int y, VOption *options = nullptr) const;
2821
2833 void draw_image(VImage sub, int x, int y, VOption *options = nullptr) const;
2834
2844 void draw_line(std::vector<double> ink, int x1, int y1, int x2, int y2, VOption *options = nullptr) const;
2845
2854 void draw_mask(std::vector<double> ink, VImage mask, int x, int y, VOption *options = nullptr) const;
2855
2869 void draw_rect(std::vector<double> ink, int left, int top, int width, int height, VOption *options = nullptr) const;
2870
2879 void draw_smudge(int left, int top, int width, int height, VOption *options = nullptr) const;
2880
2907 void dzsave(const char *filename, VOption *options = nullptr) const;
2908
2935 VipsBlob *dzsave_buffer(VOption *options = nullptr) const;
2936
2963 void dzsave_target(VTarget target, VOption *options = nullptr) const;
2964
2979 VImage embed(int x, int y, int width, int height, VOption *options = nullptr) const;
2980
2990 VImage extract_area(int left, int top, int width, int height, VOption *options = nullptr) const;
2991
3002 VImage extract_band(int band, VOption *options = nullptr) const;
3003
3016 static VImage eye(int width, int height, VOption *options = nullptr);
3017
3023 VImage falsecolour(VOption *options = nullptr) const;
3024
3031 VImage fastcor(VImage ref, VOption *options = nullptr) const;
3032
3038 VImage fill_nearest(VOption *options = nullptr) const;
3039
3054 int find_trim(int *top, int *width, int *height, VOption *options = nullptr) const;
3055
3069 static VImage fitsload(const char *filename, VOption *options = nullptr);
3070
3084 static VImage fitsload_source(VSource source, VOption *options = nullptr);
3085
3098 void fitssave(const char *filename, VOption *options = nullptr) const;
3099
3110 VImage flatten(VOption *options = nullptr) const;
3111
3118 VImage flip(VipsDirection direction, VOption *options = nullptr) const;
3119
3125 VImage float2rad(VOption *options = nullptr) const;
3126
3135 static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options = nullptr);
3136
3143 VImage freqmult(VImage mask, VOption *options = nullptr) const;
3144
3150 VImage fwfft(VOption *options = nullptr) const;
3151
3161 VImage gamma(VOption *options = nullptr) const;
3162
3174 VImage gaussblur(double sigma, VOption *options = nullptr) const;
3175
3188 static VImage gaussmat(double sigma, double min_ampl, VOption *options = nullptr);
3189
3203 static VImage gaussnoise(int width, int height, VOption *options = nullptr);
3204
3216 std::vector<double> getpoint(int x, int y, VOption *options = nullptr) const;
3217
3233 static VImage gifload(const char *filename, VOption *options = nullptr);
3234
3250 static VImage gifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3251
3267 static VImage gifload_source(VSource source, VOption *options = nullptr);
3268
3289 void gifsave(const char *filename, VOption *options = nullptr) const;
3290
3311 VipsBlob *gifsave_buffer(VOption *options = nullptr) const;
3312
3333 void gifsave_target(VTarget target, VOption *options = nullptr) const;
3334
3345 VImage globalbalance(VOption *options = nullptr) const;
3346
3360 VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options = nullptr) const;
3361
3373 static VImage grey(int width, int height, VOption *options = nullptr);
3374
3383 VImage grid(int tile_height, int across, int down, VOption *options = nullptr) const;
3384
3402 static VImage heifload(const char *filename, VOption *options = nullptr);
3403
3421 static VImage heifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3422
3440 static VImage heifload_source(VSource source, VOption *options = nullptr);
3441
3461 void heifsave(const char *filename, VOption *options = nullptr) const;
3462
3482 VipsBlob *heifsave_buffer(VOption *options = nullptr) const;
3483
3503 void heifsave_target(VTarget target, VOption *options = nullptr) const;
3504
3510 VImage hist_cum(VOption *options = nullptr) const;
3511
3517 double hist_entropy(VOption *options = nullptr) const;
3518
3528 VImage hist_equal(VOption *options = nullptr) const;
3529
3539 VImage hist_find(VOption *options = nullptr) const;
3540
3551 VImage hist_find_indexed(VImage index, VOption *options = nullptr) const;
3552
3562 VImage hist_find_ndim(VOption *options = nullptr) const;
3563
3569 bool hist_ismonotonic(VOption *options = nullptr) const;
3570
3582 VImage hist_local(int width, int height, VOption *options = nullptr) const;
3583
3590 VImage hist_match(VImage ref, VOption *options = nullptr) const;
3591
3597 VImage hist_norm(VOption *options = nullptr) const;
3598
3604 VImage hist_plot(VOption *options = nullptr) const;
3605
3617 VImage hough_circle(VOption *options = nullptr) const;
3618
3629 VImage hough_line(VOption *options = nullptr) const;
3630
3644 VImage icc_export(VOption *options = nullptr) const;
3645
3659 VImage icc_import(VOption *options = nullptr) const;
3660
3676 VImage icc_transform(const char *output_profile, VOption *options = nullptr) const;
3677
3689 static VImage identity(VOption *options = nullptr);
3690
3702 VImage ifthenelse(VImage in1, VImage in2, VOption *options = nullptr) const;
3703
3717 VImage insert(VImage sub, int x, int y, VOption *options = nullptr) const;
3718
3724 VImage invert(VOption *options = nullptr) const;
3725
3735 VImage invertlut(VOption *options = nullptr) const;
3736
3746 VImage invfft(VOption *options = nullptr) const;
3747
3762 VImage join(VImage in2, VipsDirection direction, VOption *options = nullptr) const;
3763
3779 static VImage jp2kload(const char *filename, VOption *options = nullptr);
3780
3796 static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3797
3813 static VImage jp2kload_source(VSource source, VOption *options = nullptr);
3814
3832 void jp2ksave(const char *filename, VOption *options = nullptr) const;
3833
3851 VipsBlob *jp2ksave_buffer(VOption *options = nullptr) const;
3852
3870 void jp2ksave_target(VTarget target, VOption *options = nullptr) const;
3871
3888 static VImage jpegload(const char *filename, VOption *options = nullptr);
3889
3906 static VImage jpegload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3907
3924 static VImage jpegload_source(VSource source, VOption *options = nullptr);
3925
3947 void jpegsave(const char *filename, VOption *options = nullptr) const;
3948
3970 VipsBlob *jpegsave_buffer(VOption *options = nullptr) const;
3971
3992 void jpegsave_mime(VOption *options = nullptr) const;
3993
4015 void jpegsave_target(VTarget target, VOption *options = nullptr) const;
4016
4032 static VImage jxlload(const char *filename, VOption *options = nullptr);
4033
4049 static VImage jxlload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4050
4066 static VImage jxlload_source(VSource source, VOption *options = nullptr);
4067
4085 void jxlsave(const char *filename, VOption *options = nullptr) const;
4086
4104 VipsBlob *jxlsave_buffer(VOption *options = nullptr) const;
4105
4123 void jxlsave_target(VTarget target, VOption *options = nullptr) const;
4124
4130 VImage labelregions(VOption *options = nullptr) const;
4131
4143 VImage linear(std::vector<double> a, std::vector<double> b, VOption *options = nullptr) const;
4144
4157 VImage linecache(VOption *options = nullptr) const;
4158
4171 static VImage logmat(double sigma, double min_ampl, VOption *options = nullptr);
4172
4189 static VImage magickload(const char *filename, VOption *options = nullptr);
4190
4207 static VImage magickload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4208
4226 void magicksave(const char *filename, VOption *options = nullptr) const;
4227
4245 VipsBlob *magicksave_buffer(VOption *options = nullptr) const;
4246
4260 VImage mapim(VImage index, VOption *options = nullptr) const;
4261
4272 VImage maplut(VImage lut, VOption *options = nullptr) const;
4273
4291 static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4292
4312 static VImage mask_butterworth_band(int width, int height, double order, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options = nullptr);
4313
4332 static VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4333
4349 static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options = nullptr);
4350
4367 static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4368
4387 static VImage mask_gaussian_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options = nullptr);
4388
4406 static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4407
4423 static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options = nullptr);
4424
4442 static VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = nullptr);
4443
4460 static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options = nullptr);
4461
4483 VImage match(VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = nullptr) const;
4484
4491 VImage math(VipsOperationMath math, VOption *options = nullptr) const;
4492
4500 VImage math2(VImage right, VipsOperationMath2 math2, VOption *options = nullptr) const;
4501
4509 VImage math2_const(VipsOperationMath2 math2, std::vector<double> c, VOption *options = nullptr) const;
4510
4524 static VImage matload(const char *filename, VOption *options = nullptr);
4525
4531 VImage matrixinvert(VOption *options = nullptr) const;
4532
4546 static VImage matrixload(const char *filename, VOption *options = nullptr);
4547
4561 static VImage matrixload_source(VSource source, VOption *options = nullptr);
4562
4569 VImage matrixmultiply(VImage right, VOption *options = nullptr) const;
4570
4582 void matrixprint(VOption *options = nullptr) const;
4583
4596 void matrixsave(const char *filename, VOption *options = nullptr) const;
4597
4610 void matrixsave_target(VTarget target, VOption *options = nullptr) const;
4611
4621 double max(VOption *options = nullptr) const;
4622
4629 VImage maxpair(VImage right, VOption *options = nullptr) const;
4630
4645 VImage measure(int h, int v, VOption *options = nullptr) const;
4646
4660 VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options = nullptr) const;
4661
4671 double min(VOption *options = nullptr) const;
4672
4679 VImage minpair(VImage right, VOption *options = nullptr) const;
4680
4688 VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options = nullptr) const;
4689
4708 VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = nullptr) const;
4709
4733 VImage mosaic1(VImage sec, VipsDirection direction, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = nullptr) const;
4734
4744 VImage msb(VOption *options = nullptr) const;
4745
4752 VImage multiply(VImage right, VOption *options = nullptr) const;
4753
4767 static VImage niftiload(const char *filename, VOption *options = nullptr);
4768
4782 static VImage niftiload_source(VSource source, VOption *options = nullptr);
4783
4796 void niftisave(const char *filename, VOption *options = nullptr) const;
4797
4811 static VImage openexrload(const char *filename, VOption *options = nullptr);
4812
4831 static VImage openslideload(const char *filename, VOption *options = nullptr);
4832
4851 static VImage openslideload_source(VSource source, VOption *options = nullptr);
4852
4872 static VImage pdfload(const char *filename, VOption *options = nullptr);
4873
4893 static VImage pdfload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4894
4914 static VImage pdfload_source(VSource source, VOption *options = nullptr);
4915
4922 int percent(double percent, VOption *options = nullptr) const;
4923
4937 static VImage perlin(int width, int height, VOption *options = nullptr);
4938
4945 VImage phasecor(VImage in2, VOption *options = nullptr) const;
4946
4961 static VImage pngload(const char *filename, VOption *options = nullptr);
4962
4977 static VImage pngload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4978
4993 static VImage pngload_source(VSource source, VOption *options = nullptr);
4994
5015 void pngsave(const char *filename, VOption *options = nullptr) const;
5016
5037 VipsBlob *pngsave_buffer(VOption *options = nullptr) const;
5038
5059 void pngsave_target(VTarget target, VOption *options = nullptr) const;
5060
5074 static VImage ppmload(const char *filename, VOption *options = nullptr);
5075
5089 static VImage ppmload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5090
5104 static VImage ppmload_source(VSource source, VOption *options = nullptr);
5105
5121 void ppmsave(const char *filename, VOption *options = nullptr) const;
5122
5138 void ppmsave_target(VTarget target, VOption *options = nullptr) const;
5139
5149 VImage premultiply(VOption *options = nullptr) const;
5150
5156 VImage prewitt(VOption *options = nullptr) const;
5157
5164 VImage profile(VImage *rows, VOption *options = nullptr) const;
5165
5172 static VipsBlob *profile_load(const char *name, VOption *options = nullptr);
5173
5180 VImage project(VImage *rows, VOption *options = nullptr) const;
5181
5192 VImage quadratic(VImage coeff, VOption *options = nullptr) const;
5193
5199 VImage rad2float(VOption *options = nullptr) const;
5200
5214 static VImage radload(const char *filename, VOption *options = nullptr);
5215
5229 static VImage radload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5230
5244 static VImage radload_source(VSource source, VOption *options = nullptr);
5245
5258 void radsave(const char *filename, VOption *options = nullptr) const;
5259
5272 VipsBlob *radsave_buffer(VOption *options = nullptr) const;
5273
5286 void radsave_target(VTarget target, VOption *options = nullptr) const;
5287
5296 VImage rank(int width, int height, int index, VOption *options = nullptr) const;
5297
5317 static VImage rawload(const char *filename, int width, int height, int bands, VOption *options = nullptr);
5318
5331 void rawsave(const char *filename, VOption *options = nullptr) const;
5332
5345 VipsBlob *rawsave_buffer(VOption *options = nullptr) const;
5346
5359 void rawsave_target(VTarget target, VOption *options = nullptr) const;
5360
5367 VImage recomb(VImage m, VOption *options = nullptr) const;
5368
5381 VImage reduce(double hshrink, double vshrink, VOption *options = nullptr) const;
5382
5394 VImage reduceh(double hshrink, VOption *options = nullptr) const;
5395
5407 VImage reducev(double vshrink, VOption *options = nullptr) const;
5408
5416 VImage relational(VImage right, VipsOperationRelational relational, VOption *options = nullptr) const;
5417
5425 VImage relational_const(VipsOperationRelational relational, std::vector<double> c, VOption *options = nullptr) const;
5426
5433 VImage remainder(VImage right, VOption *options = nullptr) const;
5434
5441 VImage remainder_const(std::vector<double> c, VOption *options = nullptr) const;
5442
5450 VImage remosaic(const char *old_str, const char *new_str, VOption *options = nullptr) const;
5451
5459 VImage replicate(int across, int down, VOption *options = nullptr) const;
5460
5473 VImage resize(double scale, VOption *options = nullptr) const;
5474
5481 VImage rot(VipsAngle angle, VOption *options = nullptr) const;
5482
5492 VImage rot45(VOption *options = nullptr) const;
5493
5509 VImage rotate(double angle, VOption *options = nullptr) const;
5510
5517 VImage round(VipsOperationRound round, VOption *options = nullptr) const;
5518
5524 VImage sRGB2HSV(VOption *options = nullptr) const;
5525
5531 VImage sRGB2scRGB(VOption *options = nullptr) const;
5532
5542 VImage scRGB2BW(VOption *options = nullptr) const;
5543
5549 VImage scRGB2XYZ(VOption *options = nullptr) const;
5550
5560 VImage scRGB2sRGB(VOption *options = nullptr) const;
5561
5572 VImage scale(VOption *options = nullptr) const;
5573
5579 VImage scharr(VOption *options = nullptr) const;
5580
5596 static VImage sdf(int width, int height, VipsSdfShape shape, VOption *options = nullptr);
5597
5607 VImage sequential(VOption *options = nullptr) const;
5608
5623 VImage sharpen(VOption *options = nullptr) const;
5624
5636 VImage shrink(double hshrink, double vshrink, VOption *options = nullptr) const;
5637
5648 VImage shrinkh(int hshrink, VOption *options = nullptr) const;
5649
5660 VImage shrinkv(int vshrink, VOption *options = nullptr) const;
5661
5667 VImage sign(VOption *options = nullptr) const;
5668
5685 VImage similarity(VOption *options = nullptr) const;
5686
5700 static VImage sines(int width, int height, VOption *options = nullptr);
5701
5714 VImage smartcrop(int width, int height, VOption *options = nullptr) const;
5715
5721 VImage sobel(VOption *options = nullptr) const;
5722
5729 VImage spcor(VImage ref, VOption *options = nullptr) const;
5730
5736 VImage spectrum(VOption *options = nullptr) const;
5737
5743 VImage stats(VOption *options = nullptr) const;
5744
5759 VImage stdif(int width, int height, VOption *options = nullptr) const;
5760
5772 VImage subsample(int xfac, int yfac, VOption *options = nullptr) const;
5773
5780 VImage subtract(VImage right, VOption *options = nullptr) const;
5781
5788 static VImage sum(std::vector<VImage> in, VOption *options = nullptr);
5789
5808 static VImage svgload(const char *filename, VOption *options = nullptr);
5809
5828 static VImage svgload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5829
5848 static VImage svgload_source(VSource source, VOption *options = nullptr);
5849
5856 static VImage switch_image(std::vector<VImage> tests, VOption *options = nullptr);
5857
5869 static void system(const char *cmd_format, VOption *options = nullptr);
5870
5890 static VImage text(const char *text, VOption *options = nullptr);
5891
5911 static VImage thumbnail(const char *filename, int width, VOption *options = nullptr);
5912
5933 static VImage thumbnail_buffer(VipsBlob *buffer, int width, VOption *options = nullptr);
5934
5953 VImage thumbnail_image(int width, VOption *options = nullptr) const;
5954
5975 static VImage thumbnail_source(VSource source, int width, VOption *options = nullptr);
5976
5995 static VImage tiffload(const char *filename, VOption *options = nullptr);
5996
6015 static VImage tiffload_buffer(VipsBlob *buffer, VOption *options = nullptr);
6016
6035 static VImage tiffload_source(VSource source, VOption *options = nullptr);
6036
6069 void tiffsave(const char *filename, VOption *options = nullptr) const;
6070
6103 VipsBlob *tiffsave_buffer(VOption *options = nullptr) const;
6104
6137 void tiffsave_target(VTarget target, VOption *options = nullptr) const;
6138
6153 VImage tilecache(VOption *options = nullptr) const;
6154
6173 static VImage tonelut(VOption *options = nullptr);
6174
6184 VImage transpose3d(VOption *options = nullptr) const;
6185
6196 VImage unpremultiply(VOption *options = nullptr) const;
6197
6211 static VImage vipsload(const char *filename, VOption *options = nullptr);
6212
6226 static VImage vipsload_source(VSource source, VOption *options = nullptr);
6227
6240 void vipssave(const char *filename, VOption *options = nullptr) const;
6241
6254 void vipssave_target(VTarget target, VOption *options = nullptr) const;
6255
6272 static VImage webpload(const char *filename, VOption *options = nullptr);
6273
6290 static VImage webpload_buffer(VipsBlob *buffer, VOption *options = nullptr);
6291
6308 static VImage webpload_source(VSource source, VOption *options = nullptr);
6309
6336 void webpsave(const char *filename, VOption *options = nullptr) const;
6337
6364 VipsBlob *webpsave_buffer(VOption *options = nullptr) const;
6365
6391 void webpsave_mime(VOption *options = nullptr) const;
6392
6419 void webpsave_target(VTarget target, VOption *options = nullptr) const;
6420
6433 static VImage worley(int width, int height, VOption *options = nullptr);
6434
6445 VImage wrap(VOption *options = nullptr) const;
6446
6460 static VImage xyz(int width, int height, VOption *options = nullptr);
6461
6473 static VImage zone(int width, int height, VOption *options = nullptr);
6474
6482 VImage zoom(int xfac, int yfac, VOption *options = nullptr) const;
6483};
6484
6485VIPS_NAMESPACE_END
6486
6487#endif /*VIPS_VIMAGE_H*/
Definition VError8.h:45
Definition VImage8.h:398
VImage LabQ2sRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:138
VImage hist_norm(VOption *options=nullptr) const
Definition vips-operators.cpp:1557
VImage rint(VOption *options=nullptr) const
Definition VImage8.h:1293
VImage fastcor(VImage ref, VOption *options=nullptr) const
Definition vips-operators.cpp:1049
VImage scRGB2sRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:3230
void niftisave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2539
void set(const char *field, double *value, int n)
Definition VImage8.h:621
VImage flatten(VOption *options=nullptr) const
Definition vips-operators.cpp:1121
VImage convi(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:703
double xres() const
Definition VImage8.h:500
static VImage bandrank(std::vector< VImage > in, VOption *options=nullptr)
Definition vips-operators.cpp:394
VImage sign(VOption *options=nullptr) const
Definition vips-operators.cpp:3344
VImage stdif(int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:3444
static VImage svgload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3521
static VImage switch_image(std::vector< VImage > tests, VOption *options=nullptr)
Definition vips-operators.cpp:3533
VImage conv(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:651
static VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=nullptr)
Definition vips-operators.cpp:2086
VImage atan2(VImage other, VOption *options=nullptr) const
Definition VImage8.h:1585
static VImage gifload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1286
int get_int(const char *field) const
Definition VImage8.h:689
static VImage radload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2861
VipsBlob * tiffsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:3660
static VImage zone(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:3876
std::vector< double > get_array_double(const char *field) const
Definition VImage8.h:753
void set(const char *field, int *value, int n)
Definition VImage8.h:598
static VImage new_matrixv(int width, int height,...)
Definition VImage.cpp:662
void set(const char *field, std::vector< int > value)
Definition VImage8.h:609
static VImage jp2kload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1756
void draw_point(std::vector< double > ink, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1748
VipsBlob * pngsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:2702
double deviate(VOption *options=nullptr) const
Definition vips-operators.cpp:849
VImage fill_nearest(VOption *options=nullptr) const
Definition vips-operators.cpp:1062
const char * filename() const
Definition VImage8.h:546
void rawsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2975
VImage wop(VImage other, VOption *options=nullptr) const
Definition VImage8.h:1556
void rawsave_fd(int fd, VOption *options=nullptr) const
Definition VImage.cpp:1606
VImage matrixmultiply(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2320
VImage msb(VOption *options=nullptr) const
Definition vips-operators.cpp:2490
VImage hough_circle(VOption *options=nullptr) const
Definition vips-operators.cpp:1581
static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options=nullptr)
Definition vips-operators.cpp:2195
static VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options=nullptr)
Definition vips-operators.cpp:2179
VImage subsample(int xfac, int yfac, VOption *options=nullptr) const
Definition vips-operators.cpp:3458
VImage matrixinvert(VOption *options=nullptr) const
Definition vips-operators.cpp:2284
VImage divide(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:861
VImage gaussblur(double sigma, VOption *options=nullptr) const
Definition vips-operators.cpp:1209
VImage extract_area(int left, int top, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:995
VImage replicate(int across, int down, VOption *options=nullptr) const
Definition vips-operators.cpp:3104
VImage exp10(VOption *options=nullptr) const
Definition VImage8.h:1518
VImage exp(VOption *options=nullptr) const
Definition VImage8.h:1509
VipsBlob * webpsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:3811
static VImage mask_gaussian_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2132
VImage copy(VOption *options=nullptr) const
Definition vips-operators.cpp:729
static VImage fitsload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1089
G_DEPRECATED VImage cache(VOption *options=nullptr) const
Definition vips-operators.cpp:483
void * write_to_memory(size_t *size) const
Definition VImage8.h:1084
static VImage ppmload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2734
static VImage webpload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:3779
static VImage vipsload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3739
static VImage heifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1393
void fitssave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1113
VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options=nullptr) const
Definition vips-operators.cpp:2436
static VImage matrixload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2308
static VImage gifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1274
void gifsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1318
VImage Yxy2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:222
static VImage csvload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:770
static VImage pngload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2658
VImage rot45(VOption *options=nullptr) const
Definition vips-operators.cpp:3144
static VImage new_memory()
Definition VImage8.h:856
static VImage jpegload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1808
void jp2ksave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1788
bool has_alpha() const
Definition VImage8.h:536
static VImage new_from_file(const char *name, VOption *options=nullptr)
Definition VImage.cpp:561
VImage bandjoin(double other, VOption *options=nullptr) const
Definition VImage8.h:1162
void draw_smudge(int left, int top, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:940
void set(const char *field, int value)
Definition VImage8.h:587
VImage conva(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:664
VImage gamma(VOption *options=nullptr) const
Definition vips-operators.cpp:1197
VImage sin(VOption *options=nullptr) const
Definition VImage8.h:1383
void csvsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:802
VImage hist_match(VImage ref, VOption *options=nullptr) const
Definition vips-operators.cpp:1544
static VImage jpegload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1820
VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition vips-operators.cpp:431
VImage byteswap(VOption *options=nullptr) const
Definition vips-operators.cpp:471
VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options=nullptr) const
Definition vips-operators.cpp:2395
static VImage jp2kload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1732
static VImage vipsload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3727
VImage project(VImage *rows, VOption *options=nullptr) const
Definition vips-operators.cpp:2823
VImage recomb(VImage m, VOption *options=nullptr) const
Definition vips-operators.cpp:2983
static VImage jxlload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1891
VImage write(VImage out) const
Definition VImage.cpp:680
static VImage tiffload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:3628
VImage rotate(double angle, VOption *options=nullptr) const
Definition vips-operators.cpp:3156
VImage LabS2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:150
VImage bandeor(VOption *options=nullptr) const
Definition VImage8.h:1329
VImage bandjoin_const(std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:369
static VImage sum(std::vector< VImage > in, VOption *options=nullptr)
Definition vips-operators.cpp:3485
VipsBlob * jxlsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1911
VImage wrap(VOption *options=nullptr) const
Definition vips-operators.cpp:3851
static VImage niftiload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2527
VImage affine(std::vector< double > matrix, VOption *options=nullptr) const
Definition vips-operators.cpp:271
VImage dE76(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:823
static VImage tiffload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3616
VImage rot90(VOption *options=nullptr) const
Definition VImage8.h:1215
void radsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2897
void jp2ksave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1768
VImage smartcrop(int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:3381
VImage new_from_image(double pixel) const
Definition VImage8.h:1014
static VImage gaussnoise(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:1235
static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2165
VImage reduceh(double hshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3010
VImage case_image(std::vector< VImage > cases, VOption *options=nullptr) const
Definition vips-operators.cpp:507
static VImage pdfload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2583
static VImage fitsload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1101
VImage remainder_const(std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:3077
VImage atanh(VOption *options=nullptr) const
Definition VImage8.h:1482
VImage median(int size=3, VOption *options=nullptr) const
Definition VImage8.h:1266
VipsImage * get_image() const
Definition VImage8.h:426
void csvsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:794
static VImage pdfload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2595
VImage bandor(VOption *options=nullptr) const
Definition VImage8.h:1317
VImage convasep(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:677
VImage compass(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:558
static VImage svgload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3497
void magicksave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2006
VImage flipver(VOption *options=nullptr) const
Definition VImage8.h:1206
VImage hist_local(int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:1530
void webpsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3803
static VImage jpegload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1796
static VImage logmat(double sigma, double min_ampl, VOption *options=nullptr)
Definition vips-operators.cpp:1969
static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2052
std::complex< double > minpos(VOption *options=nullptr) const
Definition VImage.cpp:858
VImage LabQ2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:114
std::complex< double > maxpos(VOption *options=nullptr) const
Definition VImage.cpp:871
const void * get_blob(const char *field, size_t *length) const
Definition VImage8.h:807
VImage sobel(VOption *options=nullptr) const
Definition vips-operators.cpp:3395
static VImage xyz(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:3863
VipsCoding coding() const
Definition VImage8.h:471
VImage remainder(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:3064
static VImage magickload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1994
VImage LCh2CMC(VOption *options=nullptr) const
Definition vips-operators.cpp:42
VImage spcor(VImage ref, VOption *options=nullptr) const
Definition vips-operators.cpp:3407
static VImage text(const char *text, VOption *options=nullptr)
Definition vips-operators.cpp:3552
VImage hist_cum(VOption *options=nullptr) const
Definition vips-operators.cpp:1445
VImage crop(int left, int top, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:754
void tiffsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3672
VImage float2rad(VOption *options=nullptr) const
Definition vips-operators.cpp:1146
VImage globalbalance(VOption *options=nullptr) const
Definition vips-operators.cpp:1326
std::vector< VImage > bandsplit(VOption *options=nullptr) const
Definition VImage.cpp:826
VImage atan2(double other, VOption *options=nullptr) const
Definition VImage8.h:1594
VImage pow(double other, VOption *options=nullptr) const
Definition VImage8.h:1536
double avg(VOption *options=nullptr) const
Definition vips-operators.cpp:320
VImage sequential(VOption *options=nullptr) const
Definition vips-operators.cpp:3280
VipsBlob * radsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:2905
static VImage matrixload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2296
VImage hist_find(VOption *options=nullptr) const
Definition vips-operators.cpp:1481
void write_to_buffer(const char *suffix, void **buf, size_t *size, VOption *options=nullptr) const
Definition VImage.cpp:708
void draw_image(VImage sub, int x, int y, VOption *options=nullptr) const
Definition vips-operators.cpp:895
void webpsave_mime(VOption *options=nullptr) const
Definition vips-operators.cpp:3823
static VImage pngload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2670
VImage dE00(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:810
VImage rect(VOption *options=nullptr) const
Definition VImage8.h:1365
VImage mosaic1(VImage sec, VipsDirection direction, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options=nullptr) const
Definition vips-operators.cpp:2468
static void call(const char *operation_name, VOption *options=nullptr)
Definition VImage.cpp:555
static VImage jxlload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1867
static VImage arrayjoin(std::vector< VImage > in, VOption *options=nullptr)
Definition vips-operators.cpp:296
void matrixprint(VOption *options=nullptr) const
Definition vips-operators.cpp:2333
VImage grid(int tile_height, int across, int down, VOption *options=nullptr) const
Definition vips-operators.cpp:1366
void ppmsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2758
VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:1338
static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1744
const char * get_string(const char *field) const
Definition VImage8.h:790
VImage polar(VOption *options=nullptr) const
Definition VImage8.h:1356
static VImage gaussmat(double sigma, double min_ampl, VOption *options=nullptr)
Definition vips-operators.cpp:1222
int find_trim(int *top, int *width, int *height, VOption *options=nullptr) const
Definition vips-operators.cpp:1074
VImage linecache(VOption *options=nullptr) const
Definition vips-operators.cpp:1957
VImage bandjoin(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1172
static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options=nullptr)
Definition vips-operators.cpp:2103
VImage fwfft(VOption *options=nullptr) const
Definition vips-operators.cpp:1185
VImage autorot(VOption *options=nullptr) const
Definition vips-operators.cpp:308
VImage phasecor(VImage in2, VOption *options=nullptr) const
Definition vips-operators.cpp:2645
VImage ifthenelse(std::vector< double > th, VImage el, VOption *options=nullptr) const
Definition VImage8.h:1615
void webpsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3830
VImage resize(double scale, VOption *options=nullptr) const
Definition vips-operators.cpp:3118
static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options=nullptr)
Definition vips-operators.cpp:1158
static VImage gifload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1262
VImage XYZ2Yxy(VOption *options=nullptr) const
Definition vips-operators.cpp:198
VImage XYZ2scRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:210
static VImage niftiload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2515
VImage complexget(VipsOperationComplexget get, VOption *options=nullptr) const
Definition vips-operators.cpp:611
void matrixsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2340
VImage match(VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options=nullptr) const
Definition vips-operators.cpp:2210
void dzsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:971
VImage pow(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1546
VImage bandunfold(VOption *options=nullptr) const
Definition vips-operators.cpp:406
VImage reduce(double hshrink, double vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:2996
void set(const char *field, VipsCallbackFn free_fn, void *data, size_t length)
Definition VImage8.h:666
VipsBlob * magicksave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:2014
VImage bandand(VOption *options=nullptr) const
Definition VImage8.h:1305
void draw_line(double ink, int x1, int y1, int x2, int y2, VOption *options=nullptr) const
Definition VImage8.h:1703
void vipssave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3751
VImage hist_equal(VOption *options=nullptr) const
Definition vips-operators.cpp:1469
VImage hist_find_ndim(VOption *options=nullptr) const
Definition vips-operators.cpp:1506
VImage new_from_image(std::vector< double > pixel) const
Definition VImage8.h:998
static VImage thumbnail_source(VSource source, int width, VOption *options=nullptr)
Definition vips-operators.cpp:3603
static VipsBlob * profile_load(const char *name, VOption *options=nullptr)
Definition vips-operators.cpp:2811
static VImage openslideload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2559
VImage imag(VOption *options=nullptr) const
Definition VImage8.h:1347
static VImage matload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2272
VImage add(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:246
static VImage new_from_memory_steal(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition VImage.cpp:640
void rawsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2955
static VImage thumbnail(const char *filename, int width, VOption *options=nullptr)
Definition vips-operators.cpp:3564
VipsBlob * heifsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1425
VipsBlob * jp2ksave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1776
static VImage pdfload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2607
static VImage eye(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:1024
VImage ifthenelse(std::vector< double > th, std::vector< double > el, VOption *options=nullptr) const
Definition VImage8.h:1637
VImage HSV2sRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:30
void ppmsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2766
VImage hist_find_indexed(VImage index, VOption *options=nullptr) const
Definition vips-operators.cpp:1493
static VImage radload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2885
static VImage jxlload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1879
VImage boolean_const(VipsOperationBoolean boolean, std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:445
double hist_entropy(VOption *options=nullptr) const
Definition vips-operators.cpp:1457
VImage dECMC(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:836
VImage copy_memory() const
Definition VImage8.h:1032
static VImage tonelut(VOption *options=nullptr)
Definition vips-operators.cpp:3692
VImage wop(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1575
static VImage ppmload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2722
VImage insert(VImage sub, int x, int y, VOption *options=nullptr) const
Definition vips-operators.cpp:1667
VImage relational(VImage right, VipsOperationRelational relational, VOption *options=nullptr) const
Definition vips-operators.cpp:3036
void get_array_double(const char *field, double **out, int *n) const
Definition VImage8.h:740
VImage sRGB2scRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:3194
int percent(double percent, VOption *options=nullptr) const
Definition vips-operators.cpp:2619
VImage atan(VOption *options=nullptr) const
Definition VImage8.h:1428
bool remove(const char *name) const
Definition VImage8.h:823
VImage sinh(VOption *options=nullptr) const
Definition VImage8.h:1437
VImage icc_export(VOption *options=nullptr) const
Definition vips-operators.cpp:1605
VImage pow(VImage other, VOption *options=nullptr) const
Definition VImage8.h:1527
VImage log(VOption *options=nullptr) const
Definition VImage8.h:1491
static VImage new_from_buffer(const void *buf, size_t len, const char *option_string, VOption *options=nullptr)
Definition VImage.cpp:584
static VImage tiffload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3640
VImage clamp(VOption *options=nullptr) const
Definition vips-operators.cpp:533
static VImage pngload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2682
void matrixsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2348
VImage asin(VOption *options=nullptr) const
Definition VImage8.h:1410
VImage ceil(VOption *options=nullptr) const
Definition VImage8.h:1284
static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2117
VImage scharr(VOption *options=nullptr) const
Definition vips-operators.cpp:3254
VImage rot(VipsAngle angle, VOption *options=nullptr) const
Definition vips-operators.cpp:3131
static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=nullptr)
Definition vips-operators.cpp:2149
VImage bandjoin(VImage other, VOption *options=nullptr) const
Definition VImage.cpp:838
VImage relational_const(VipsOperationRelational relational, std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:3050
static void call_option_string(const char *operation_name, const char *option_string, VOption *options=nullptr)
Definition VImage.cpp:501
VImage remosaic(const char *old_str, const char *new_str, VOption *options=nullptr) const
Definition vips-operators.cpp:3090
VImage convsep(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:716
void draw_flood(double ink, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1766
VImage dilate(VImage mask, VOption *options=nullptr) const
Definition VImage8.h:1244
void jxlsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1923
VImage hough_line(VOption *options=nullptr) const
Definition vips-operators.cpp:1593
static VImage csvload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:782
VImage invfft(VOption *options=nullptr) const
Definition vips-operators.cpp:1706
static VImage sdf(int width, int height, VipsSdfShape shape, VOption *options=nullptr)
Definition vips-operators.cpp:3266
double yres() const
Definition VImage8.h:509
static VImage grey(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:1353
void set(const char *field, std::vector< double > value)
Definition VImage8.h:632
double max(VOption *options=nullptr) const
Definition vips-operators.cpp:2356
static VImage thumbnail_buffer(void *buf, size_t len, int width, VOption *options=nullptr)
Definition VImage.cpp:781
void vipssave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3759
VImage scRGB2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:3218
VImage Lab2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:102
void radsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2917
static VImage radload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2873
int yoffset() const
Definition VImage8.h:527
VImage complexform(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:598
static VImage black(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:418
VImage falsecolour(VOption *options=nullptr) const
Definition vips-operators.cpp:1037
VipsBlob * jpegsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1840
VipsInterpretation interpretation() const
Definition VImage8.h:481
static VImage identity(VOption *options=nullptr)
Definition vips-operators.cpp:1642
int height() const
Definition VImage8.h:444
void set(const char *field, const char *value)
Definition VImage8.h:653
void gifsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1298
VImage acos(VOption *options=nullptr) const
Definition VImage8.h:1419
void draw_circle(double ink, int cx, int cy, int radius, VOption *options=nullptr) const
Definition VImage8.h:1688
VImage math2(VImage right, VipsOperationMath2 math2, VOption *options=nullptr) const
Definition vips-operators.cpp:2244
VImage spectrum(VOption *options=nullptr) const
Definition vips-operators.cpp:3420
static VImage worley(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:3838
VImage sRGB2HSV(VOption *options=nullptr) const
Definition vips-operators.cpp:3182
VImage abs(VOption *options=nullptr) const
Definition vips-operators.cpp:234
VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options=nullptr) const
Definition vips-operators.cpp:637
GType get_typeof(const char *field) const
Definition VImage8.h:678
VRegion region() const
Definition VImage.cpp:798
VImage stats(VOption *options=nullptr) const
Definition vips-operators.cpp:3432
VImage linear(std::vector< double > a, double b, VOption *options=nullptr) const
Definition VImage8.h:1131
VImage bandmean(VOption *options=nullptr) const
Definition vips-operators.cpp:382
VImage embed(int x, int y, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:979
std::vector< int > get_array_int(const char *field) const
Definition VImage8.h:719
static VImage mask_butterworth_band(int width, int height, double order, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2068
static VImage new_matrix(int width, int height, double *array, int size)
Definition VImage8.h:975
VImage real(VOption *options=nullptr) const
Definition VImage8.h:1338
VImage rot180(VOption *options=nullptr) const
Definition VImage8.h:1224
static VImage magickload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1982
VipsInterpretation guess_interpretation() const
Definition VImage8.h:491
double get_double(const char *field) const
Definition VImage8.h:773
static VImage perlin(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:2632
VImage cos(VOption *options=nullptr) const
Definition VImage8.h:1392
VImage Lab2LabQ(VOption *options=nullptr) const
Definition vips-operators.cpp:78
void tiffsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3652
static VImage openexrload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2547
VImage shrinkh(int hshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3318
VImage hist_plot(VOption *options=nullptr) const
Definition vips-operators.cpp:1569
VImage tanh(VOption *options=nullptr) const
Definition VImage8.h:1455
VImage zoom(int xfac, int yfac, VOption *options=nullptr) const
Definition vips-operators.cpp:3889
VImage bandfold(VOption *options=nullptr) const
Definition vips-operators.cpp:345
VImage premultiply(VOption *options=nullptr) const
Definition vips-operators.cpp:2774
int bands() const
Definition VImage8.h:453
VImage ifthenelse(double th, double el, VOption *options=nullptr) const
Definition VImage8.h:1669
VImage tilecache(VOption *options=nullptr) const
Definition vips-operators.cpp:3680
static VImage svgload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:3509
static VImage heifload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1381
VImage minpair(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2423
VImage prewitt(VOption *options=nullptr) const
Definition vips-operators.cpp:2786
VImage LCh2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:54
void heifsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1417
VImage atan2(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1604
static VImage analyzeload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:284
VImage scRGB2BW(VOption *options=nullptr) const
Definition vips-operators.cpp:3206
VImage ifthenelse(double th, VImage el, VOption *options=nullptr) const
Definition VImage8.h:1649
VImage LabS2LabQ(VOption *options=nullptr) const
Definition vips-operators.cpp:162
void write_to_target(const char *suffix, VTarget target, VOption *options=nullptr) const
Definition VImage.cpp:761
VImage()
Definition VImage8.h:416
VImage buildlut(VOption *options=nullptr) const
Definition vips-operators.cpp:459
static VImage new_temp_file(const char *file_format=".v")
Definition VImage8.h:866
VImage labelregions(VOption *options=nullptr) const
Definition vips-operators.cpp:1931
VImage multiply(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2502
VImage fliphor(VOption *options=nullptr) const
Definition VImage8.h:1197
void write_to_file(const char *name, VOption *options=nullptr) const
Definition VImage.cpp:689
void set(const char *field, double value)
Definition VImage8.h:642
static VImage new_matrix(int width, int height)
Definition VImage.cpp:656
void draw_mask(double ink, VImage mask, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1780
VImage(VipsImage *image, VSteal steal=STEAL)
Definition VImage8.h:408
VImage linear(double a, std::vector< double > b, VOption *options=nullptr) const
Definition VImage8.h:1142
void pngsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2694
bool hist_ismonotonic(VOption *options=nullptr) const
Definition vips-operators.cpp:1518
VImage XYZ2CMYK(VOption *options=nullptr) const
Definition vips-operators.cpp:174
VImage complex(VipsOperationComplex cmplx, VOption *options=nullptr) const
Definition vips-operators.cpp:571
VImage freqmult(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:1172
VImage icc_import(VOption *options=nullptr) const
Definition vips-operators.cpp:1617
VImage rot270(VOption *options=nullptr) const
Definition VImage8.h:1233
void pngsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2714
VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options=nullptr) const
Definition vips-operators.cpp:2450
VImage sharpen(VOption *options=nullptr) const
Definition vips-operators.cpp:3292
VImage maxpair(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2368
static VImage new_from_source(VSource source, const char *option_string, VOption *options=nullptr)
Definition VImage.cpp:618
VImage mapim(VImage index, VOption *options=nullptr) const
Definition vips-operators.cpp:2026
VImage quadratic(VImage coeff, VOption *options=nullptr) const
Definition vips-operators.cpp:2836
static void system(const char *cmd_format, VOption *options=nullptr)
Definition vips-operators.cpp:3545
VImage shrink(double hshrink, double vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3304
VImage composite(VImage other, VipsBlendMode mode, VOption *options=nullptr) const
Definition VImage.cpp:847
VImage convf(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:690
VImage profile(VImage *rows, VOption *options=nullptr) const
Definition vips-operators.cpp:2798
VImage extract_band(int band, VOption *options=nullptr) const
Definition vips-operators.cpp:1011
VImage bandbool(VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition vips-operators.cpp:332
VipsBandFormat format() const
Definition VImage8.h:462
VImage math2_const(VipsOperationMath2 math2, std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:2258
static VImage new_from_memory_copy(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition VImage8.h:940
VImage transpose3d(VOption *options=nullptr) const
Definition vips-operators.cpp:3703
VImage reducev(double vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3023
void dzsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:951
static VImage webpload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3767
VImage erode(VImage mask, VOption *options=nullptr) const
Definition VImage8.h:1256
VImage floor(VOption *options=nullptr) const
Definition VImage8.h:1275
VImage linear(double a, double b, VOption *options=nullptr) const
Definition VImage8.h:1119
VImage colourspace(VipsInterpretation space, VOption *options=nullptr) const
Definition vips-operators.cpp:545
VImage addalpha(VOption *options=nullptr) const
Definition vips-operators.cpp:259
VImage ifthenelse(VImage th, std::vector< double > el, VOption *options=nullptr) const
Definition VImage8.h:1626
void get_array_int(const char *field, int **out, int *n) const
Definition VImage8.h:706
VImage tan(VOption *options=nullptr) const
Definition VImage8.h:1401
VipsBlob * rawsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:2963
void jpegsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1859
VImage cosh(VOption *options=nullptr) const
Definition VImage8.h:1446
double countlines(VipsDirection direction, VOption *options=nullptr) const
Definition vips-operators.cpp:741
VImage icc_transform(const char *output_profile, VOption *options=nullptr) const
Definition vips-operators.cpp:1629
VImage ifthenelse(VImage th, double el, VOption *options=nullptr) const
Definition VImage8.h:1659
void inplace()
Definition VImage8.h:565
VImage rad2float(VOption *options=nullptr) const
Definition vips-operators.cpp:2849
static VImage sines(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:3368
VImage Lab2LCh(VOption *options=nullptr) const
Definition vips-operators.cpp:66
int width() const
Definition VImage8.h:435
VImage flip(VipsDirection direction, VOption *options=nullptr) const
Definition vips-operators.cpp:1133
VImage math(VipsOperationMath math, VOption *options=nullptr) const
Definition vips-operators.cpp:2231
VImage similarity(VOption *options=nullptr) const
Definition vips-operators.cpp:3356
VImage unpremultiply(VOption *options=nullptr) const
Definition vips-operators.cpp:3715
VImage maplut(VImage lut, VOption *options=nullptr) const
Definition vips-operators.cpp:2039
VipsBlob * gifsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1306
static VImage ppmload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2746
void jpegsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1832
void draw_rect(double ink, int left, int top, int width, int height, VOption *options=nullptr) const
Definition VImage8.h:1722
VImage Lab2LabS(VOption *options=nullptr) const
Definition vips-operators.cpp:90
VImage log10(VOption *options=nullptr) const
Definition VImage8.h:1500
VImage invert(VOption *options=nullptr) const
Definition vips-operators.cpp:1682
int xoffset() const
Definition VImage8.h:518
VImage rank(int width, int height, int index, VOption *options=nullptr) const
Definition vips-operators.cpp:2925
VImage CMC2LCh(VOption *options=nullptr) const
Definition vips-operators.cpp:6
VImage LabQ2LabS(VOption *options=nullptr) const
Definition vips-operators.cpp:126
static VImage rawload(const char *filename, int width, int height, int bands, VOption *options=nullptr)
Definition vips-operators.cpp:2940
void jpegsave_mime(VOption *options=nullptr) const
Definition vips-operators.cpp:1852
static VImage heifload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1405
VImage XYZ2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:186
static VImage openslideload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2571
void draw_point(double ink, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1735
VImage asinh(VOption *options=nullptr) const
Definition VImage8.h:1464
const void * data() const
Definition VImage8.h:578
double min(VOption *options=nullptr) const
Definition vips-operators.cpp:2411
VImage invertlut(VOption *options=nullptr) const
Definition vips-operators.cpp:1694
static VOption * option()
Definition VImage8.h:832
static VImage new_from_memory(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition VImage8.h:922
VImage measure(int h, int v, VOption *options=nullptr) const
Definition vips-operators.cpp:2381
void jxlsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1903
VImage wop(double other, VOption *options=nullptr) const
Definition VImage8.h:1565
VImage round(VipsOperationRound round, VOption *options=nullptr) const
Definition vips-operators.cpp:3169
std::vector< double > getpoint(int x, int y, VOption *options=nullptr) const
Definition vips-operators.cpp:1248
VImage subtract(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:3472
VImage scale(VOption *options=nullptr) const
Definition vips-operators.cpp:3242
VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options=nullptr) const
Definition vips-operators.cpp:584
VImage acosh(VOption *options=nullptr) const
Definition VImage8.h:1473
VipsBlob * dzsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:959
VImage thumbnail_image(int width, VOption *options=nullptr) const
Definition vips-operators.cpp:3590
VImage shrinkv(int vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3331
VImage conj(VOption *options=nullptr) const
Definition VImage8.h:1374
static VImage webpload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3791
VImage CMYK2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:18
VImage join(VImage in2, VipsDirection direction, VOption *options=nullptr) const
Definition vips-operators.cpp:1718
void heifsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1437
VImage canny(VOption *options=nullptr) const
Definition vips-operators.cpp:495
VImage cast(VipsBandFormat format, VOption *options=nullptr) const
Definition vips-operators.cpp:520
Definition VInterpolate8.h:45
Definition VImage8.h:67
VObject(VipsObject *new_vobject, VSteal steal=STEAL)
Definition VImage8.h:79
VipsObject * get_object() const
Definition VImage8.h:170
bool is_null() const
Definition VImage8.h:182
Definition VImage8.h:216
void get_operation(VipsOperation *operation)
Definition VImage.cpp:447
VOption * set(const char *name, bool value)
Definition VImage.cpp:122
void set_operation(VipsOperation *operation)
Definition VImage.cpp:425
Definition VRegion8.h:40
Definition VConnection8.h:45
Definition VConnection8.h:104