vips-cpp 8.18
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
554 VImage
555 gainmap() const
556 {
557 return VImage(vips_image_get_gainmap(get_image()));
558 }
559
573 void
575 {
576 if (vips_image_inplace(this->get_image()))
577 throw(VError());
578 }
579
586 const void *
587 data() const
588 {
589 return vips_image_get_data(get_image());
590 }
591
595 void
596 set(const char *field, int value)
597 {
598 vips_image_set_int(this->get_image(), field, value);
599 }
600
606 void
607 set(const char *field, int *value, int n)
608 {
609 vips_image_set_array_int(this->get_image(), field, value, n);
610 }
611
617 void
618 set(const char *field, std::vector<int> value)
619 {
620 vips_image_set_array_int(this->get_image(), field, &value[0],
621 static_cast<int>(value.size()));
622 }
623
629 void
630 set(const char *field, double *value, int n)
631 {
632 vips_image_set_array_double(this->get_image(), field, value, n);
633 }
634
640 void
641 set(const char *field, std::vector<double> value)
642 {
643 vips_image_set_array_double(this->get_image(), field, &value[0],
644 static_cast<int>(value.size()));
645 }
646
650 void
651 set(const char *field, double value)
652 {
653 vips_image_set_double(this->get_image(), field, value);
654 }
655
661 void
662 set(const char *field, const char *value)
663 {
664 vips_image_set_string(this->get_image(), field, value);
665 }
666
674 void
675 set(const char *field,
676 VipsCallbackFn free_fn, void *data, size_t length)
677 {
678 vips_image_set_blob(this->get_image(), field,
679 free_fn, data, length);
680 }
681
685 void
686 set(const char *field, const VImage value)
687 {
688 vips_image_set_image(this->get_image(), field, value.get_image());
689 }
690
695 GType
696 get_typeof(const char *field) const
697 {
698 return vips_image_get_typeof(this->get_image(), field);
699 }
700
706 int
707 get_int(const char *field) const
708 {
709 int value;
710
711 if (vips_image_get_int(this->get_image(), field, &value))
712 throw(VError());
713
714 return value;
715 }
716
723 void
724 get_array_int(const char *field, int **out, int *n) const
725 {
726 if (vips_image_get_array_int(this->get_image(),
727 field, out, n))
728 throw(VError());
729 }
730
736 std::vector<int>
737 get_array_int(const char *field) const
738 {
739 int length;
740 int *array;
741
742 if (vips_image_get_array_int(this->get_image(),
743 field, &array, &length))
744 throw(VError());
745
746 std::vector<int> vector(array, array + length);
747
748 return vector;
749 }
750
757 void
758 get_array_double(const char *field, double **out, int *n) const
759 {
760 if (vips_image_get_array_double(this->get_image(),
761 field, out, n))
762 throw(VError());
763 }
764
770 std::vector<double>
771 get_array_double(const char *field) const
772 {
773 int length;
774 double *array;
775
776 if (vips_image_get_array_double(this->get_image(),
777 field, &array, &length))
778 throw(VError());
779
780 std::vector<double> vector(array, array + length);
781
782 return vector;
783 }
784
790 double
791 get_double(const char *field) const
792 {
793 double value;
794
795 if (vips_image_get_double(this->get_image(), field, &value))
796 throw(VError());
797
798 return value;
799 }
800
807 const char *
808 get_string(const char *field) const
809 {
810 const char *value;
811
812 if (vips_image_get_string(this->get_image(), field, &value))
813 throw(VError());
814
815 return value;
816 }
817
824 const void *
825 get_blob(const char *field, size_t *length) const
826 {
827 const void *value;
828
829 if (vips_image_get_blob(this->get_image(), field,
830 &value, length))
831 throw(VError());
832
833 return value;
834 }
835
840 bool
841 remove(const char *name) const
842 {
843 return vips_image_remove(get_image(), name);
844 }
845
849 static VOption *
851 {
852 return new VOption();
853 }
854
859 static void
860 call_option_string(const char *operation_name,
861 const char *option_string, VOption *options = nullptr);
862
866 static void
867 call(const char *operation_name, VOption *options = nullptr);
868
873 static VImage
875 {
876 return VImage(vips_image_new_memory());
877 }
878
883 static VImage
884 new_temp_file(const char *file_format = ".v")
885 {
886 VipsImage *image;
887
888 if (!(image = vips_image_new_temp_file(file_format)))
889 throw(VError());
890
891 return VImage(image);
892 }
893
900 static VImage
901 new_from_file(const char *name, VOption *options = nullptr);
902
910 static VImage
911 new_from_buffer(const void *buf, size_t len,
912 const char *option_string, VOption *options = nullptr);
913
921 static VImage
922 new_from_buffer(const std::string &buf,
923 const char *option_string, VOption *options = nullptr);
924
931 static VImage
933 const char *option_string, VOption *options = nullptr);
934
939 static VImage
940 new_from_memory(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(data, size,
947 throw(VError());
948
949 return VImage(image);
950 }
951
957 static VImage
958 new_from_memory_copy(const void *data, size_t size,
959 int width, int height, int bands, VipsBandFormat format)
960 {
961 VipsImage *image;
962
963 if (!(image = vips_image_new_from_memory_copy(data, size,
965 throw(VError());
966
967 return VImage(image);
968 }
969
977 static VImage
978 new_from_memory_steal(const void *data, size_t size,
979 int width, int height, int bands, VipsBandFormat format);
980
985 static VImage
986 new_matrix(int width, int height);
987
992 static VImage
993 new_matrix(int width, int height, double *array, int size)
994 {
995 VipsImage *image;
996
997 if (!(image = vips_image_new_matrix_from_array(width, height,
998 array, size)))
999 throw(VError());
1000
1001 return VImage(image);
1002 }
1003
1008 static VImage
1009 new_matrixv(int width, int height, ...);
1010
1015 VImage
1016 new_from_image(std::vector<double> pixel) const
1017 {
1018 VipsImage *image;
1019
1020 if (!(image = vips_image_new_from_image(this->get_image(),
1021 &pixel[0], static_cast<int>(pixel.size()))))
1022 throw(VError());
1023
1024 return VImage(image);
1025 }
1026
1031 VImage
1032 new_from_image(double pixel) const
1033 {
1034 return new_from_image(to_vectorv(1, pixel));
1035 }
1036
1049 VImage
1051 {
1052 VipsImage *image;
1053
1054 if (!(image = vips_image_copy_memory(this->get_image())))
1055 throw(VError());
1056
1057 return VImage(image);
1058 }
1059
1063 VImage write(VImage out) const;
1064
1071 void write_to_file(const char *name, VOption *options = nullptr) const;
1072
1086 void write_to_buffer(const char *suffix, void **buf, size_t *size,
1087 VOption *options = nullptr) const;
1088
1095 void write_to_target(const char *suffix, VTarget target,
1096 VOption *options = nullptr) const;
1097
1101 void *
1102 write_to_memory(size_t *size) const
1103 {
1104 void *result;
1105
1106 if (!(result = vips_image_write_to_memory(this->get_image(),
1107 size)))
1108 throw(VError());
1109
1110 return result;
1111 }
1112
1116 VRegion
1117 region() const;
1118
1122 VRegion
1123 region(VipsRect *rect) const;
1124
1128 VRegion
1129 region(int left, int top, int width, int height) const;
1130
1136 VImage
1137 linear(double a, double b, VOption *options = nullptr) const
1138 {
1139 return this->linear(to_vector(a), to_vector(b),
1140 options);
1141 }
1142
1148 VImage
1149 linear(std::vector<double> a, double b, VOption *options = nullptr) const
1150 {
1151 return this->linear(a, to_vector(b), options);
1152 }
1153
1159 VImage
1160 linear(double a, std::vector<double> b, VOption *options = nullptr) const
1161 {
1162 return this->linear(to_vector(a), b, options);
1163 }
1164
1168 std::vector<VImage> bandsplit(VOption *options = nullptr) const;
1169
1173 VImage bandjoin(VImage other, VOption *options = nullptr) const;
1174
1179 VImage
1180 bandjoin(double other, VOption *options = nullptr) const
1181 {
1182 return bandjoin(to_vector(other), options);
1183 }
1184
1189 VImage
1190 bandjoin(std::vector<double> other, VOption *options = nullptr) const
1191 {
1192 return bandjoin_const(other, options);
1193 }
1194
1198 VImage composite(VImage other, VipsBlendMode mode,
1199 VOption *options = nullptr) const;
1200
1204 std::complex<double> minpos(VOption *options = nullptr) const;
1205
1209 std::complex<double> maxpos(VOption *options = nullptr) const;
1210
1214 VImage
1215 fliphor(VOption *options = nullptr) const
1216 {
1217 return flip(VIPS_DIRECTION_HORIZONTAL, options);
1218 }
1219
1223 VImage
1224 flipver(VOption *options = nullptr) const
1225 {
1226 return flip(VIPS_DIRECTION_VERTICAL, options);
1227 }
1228
1232 VImage
1233 rot90(VOption *options = nullptr) const
1234 {
1235 return rot(VIPS_ANGLE_D90, options);
1236 }
1237
1241 VImage
1242 rot180(VOption *options = nullptr) const
1243 {
1244 return rot(VIPS_ANGLE_D180, options);
1245 }
1246
1250 VImage
1251 rot270(VOption *options = nullptr) const
1252 {
1253 return rot(VIPS_ANGLE_D270, options);
1254 }
1255
1261 VImage
1262 dilate(VImage mask, VOption *options = nullptr) const
1263 {
1265 options);
1266 }
1267
1273 VImage
1274 erode(VImage mask, VOption *options = nullptr) const
1275 {
1277 options);
1278 }
1279
1283 VImage
1284 median(int size = 3, VOption *options = nullptr) const
1285 {
1286 return rank(size, size, (size * size) / 2, options);
1287 }
1288
1292 VImage
1293 floor(VOption *options = nullptr) const
1294 {
1295 return round(VIPS_OPERATION_ROUND_FLOOR, options);
1296 }
1297
1301 VImage
1302 ceil(VOption *options = nullptr) const
1303 {
1304 return round(VIPS_OPERATION_ROUND_CEIL, options);
1305 }
1306
1310 VImage
1311 rint(VOption *options = nullptr) const
1312 {
1313 return round(VIPS_OPERATION_ROUND_RINT, options);
1314 }
1315
1322 VImage
1323 bandand(VOption *options = nullptr) const
1324 {
1325 return bandbool(VIPS_OPERATION_BOOLEAN_AND, options);
1326 }
1327
1334 VImage
1335 bandor(VOption *options = nullptr) const
1336 {
1337 return bandbool(VIPS_OPERATION_BOOLEAN_OR, options);
1338 }
1339
1346 VImage
1347 bandeor(VOption *options = nullptr) const
1348 {
1349 return bandbool(VIPS_OPERATION_BOOLEAN_EOR, options);
1350 }
1351
1355 VImage
1356 real(VOption *options = nullptr) const
1357 {
1359 }
1360
1364 VImage
1365 imag(VOption *options = nullptr) const
1366 {
1368 }
1369
1373 VImage
1374 polar(VOption *options = nullptr) const
1375 {
1376 return complex(VIPS_OPERATION_COMPLEX_POLAR, options);
1377 }
1378
1382 VImage
1383 rect(VOption *options = nullptr) const
1384 {
1385 return complex(VIPS_OPERATION_COMPLEX_RECT, options);
1386 }
1387
1391 VImage
1392 conj(VOption *options = nullptr) const
1393 {
1394 return complex(VIPS_OPERATION_COMPLEX_CONJ, options);
1395 }
1396
1400 VImage
1401 sin(VOption *options = nullptr) const
1402 {
1403 return math(VIPS_OPERATION_MATH_SIN, options);
1404 }
1405
1409 VImage
1410 cos(VOption *options = nullptr) const
1411 {
1412 return math(VIPS_OPERATION_MATH_COS, options);
1413 }
1414
1418 VImage
1419 tan(VOption *options = nullptr) const
1420 {
1421 return math(VIPS_OPERATION_MATH_TAN, options);
1422 }
1423
1427 VImage
1428 asin(VOption *options = nullptr) const
1429 {
1430 return math(VIPS_OPERATION_MATH_ASIN, options);
1431 }
1432
1436 VImage
1437 acos(VOption *options = nullptr) const
1438 {
1439 return math(VIPS_OPERATION_MATH_ACOS, options);
1440 }
1441
1445 VImage
1446 atan(VOption *options = nullptr) const
1447 {
1448 return math(VIPS_OPERATION_MATH_ATAN, options);
1449 }
1450
1454 VImage
1455 sinh(VOption *options = nullptr) const
1456 {
1457 return math(VIPS_OPERATION_MATH_SINH, options);
1458 }
1459
1463 VImage
1464 cosh(VOption *options = nullptr) const
1465 {
1466 return math(VIPS_OPERATION_MATH_COSH, options);
1467 }
1468
1472 VImage
1473 tanh(VOption *options = nullptr) const
1474 {
1475 return math(VIPS_OPERATION_MATH_TANH, options);
1476 }
1477
1481 VImage
1482 asinh(VOption *options = nullptr) const
1483 {
1484 return math(VIPS_OPERATION_MATH_ASINH, options);
1485 }
1486
1490 VImage
1491 acosh(VOption *options = nullptr) const
1492 {
1493 return math(VIPS_OPERATION_MATH_ACOSH, options);
1494 }
1495
1499 VImage
1500 atanh(VOption *options = nullptr) const
1501 {
1502 return math(VIPS_OPERATION_MATH_ATANH, options);
1503 }
1504
1508 VImage
1509 log(VOption *options = nullptr) const
1510 {
1511 return math(VIPS_OPERATION_MATH_LOG, options);
1512 }
1513
1517 VImage
1518 log10(VOption *options = nullptr) const
1519 {
1520 return math(VIPS_OPERATION_MATH_LOG10, options);
1521 }
1522
1526 VImage
1527 exp(VOption *options = nullptr) const
1528 {
1529 return math(VIPS_OPERATION_MATH_EXP, options);
1530 }
1531
1535 VImage
1536 exp10(VOption *options = nullptr) const
1537 {
1538 return math(VIPS_OPERATION_MATH_EXP10, options);
1539 }
1540
1544 VImage
1545 pow(VImage other, VOption *options = nullptr) const
1546 {
1547 return math2(other, VIPS_OPERATION_MATH2_POW, options);
1548 }
1549
1553 VImage
1554 pow(double other, VOption *options = nullptr) const
1555 {
1557 to_vector(other), options);
1558 }
1559
1563 VImage
1564 pow(std::vector<double> other, VOption *options = nullptr) const
1565 {
1567 other, options);
1568 }
1569
1573 VImage
1574 wop(VImage other, VOption *options = nullptr) const
1575 {
1576 return math2(other, VIPS_OPERATION_MATH2_WOP, options);
1577 }
1578
1582 VImage
1583 wop(double other, VOption *options = nullptr) const
1584 {
1586 to_vector(other), options);
1587 }
1588
1592 VImage
1593 wop(std::vector<double> other, VOption *options = nullptr) const
1594 {
1596 other, options);
1597 }
1598
1602 VImage
1603 atan2(VImage other, VOption *options = nullptr) const
1604 {
1605 return math2(other, VIPS_OPERATION_MATH2_ATAN2, options);
1606 }
1607
1611 VImage
1612 atan2(double other, VOption *options = nullptr) const
1613 {
1615 to_vector(other), options);
1616 }
1617
1621 VImage
1622 atan2(std::vector<double> other, VOption *options = nullptr) const
1623 {
1625 other, options);
1626 }
1627
1632 VImage
1633 ifthenelse(std::vector<double> th, VImage el,
1634 VOption *options = nullptr) const
1635 {
1636 return ifthenelse(el.new_from_image(th), el, options);
1637 }
1638
1643 VImage
1644 ifthenelse(VImage th, std::vector<double> el,
1645 VOption *options = nullptr) const
1646 {
1647 return ifthenelse(th, th.new_from_image(el), options);
1648 }
1649
1654 VImage
1655 ifthenelse(std::vector<double> th, std::vector<double> el,
1656 VOption *options = nullptr) const
1657 {
1659 options);
1660 }
1661
1666 VImage
1667 ifthenelse(double th, VImage el, VOption *options = nullptr) const
1668 {
1669 return ifthenelse(to_vector(th), el, options);
1670 }
1671
1676 VImage
1677 ifthenelse(VImage th, double el, VOption *options = nullptr) const
1678 {
1679 return ifthenelse(th, to_vector(el), options);
1680 }
1681
1686 VImage
1687 ifthenelse(double th, double el, VOption *options = nullptr) const
1688 {
1689 return ifthenelse(to_vector(th), to_vector(el),
1690 options);
1691 }
1692
1705 void
1706 draw_circle(double ink, int cx, int cy, int radius, VOption *options = nullptr) const
1707 {
1708 return draw_circle(to_vector(ink), cx, cy, radius, options);
1709 }
1710
1720 void
1721 draw_line(double ink, int x1, int y1, int x2, int y2, VOption *options = nullptr) const
1722 {
1723 return draw_line(to_vector(ink), x1, y1, x2, y2, options);
1724 }
1725
1739 void
1740 draw_rect(double ink, int left, int top, int width, int height, VOption *options = nullptr) const
1741 {
1742 return draw_rect(to_vector(ink), left, top, width, height, options);
1743 }
1744
1752 void
1753 draw_point(double ink, int x, int y, VOption *options = nullptr) const
1754 {
1755 return draw_rect(ink, x, y, 1, 1, options);
1756 }
1757
1765 void
1766 draw_point(std::vector<double> ink, int x, int y, VOption *options = nullptr) const
1767 {
1768 return draw_rect(ink, x, y, 1, 1, options);
1769 }
1770
1783 void
1784 draw_flood(double ink, int x, int y, VOption *options = nullptr) const
1785 {
1786 return draw_flood(to_vector(ink), x, y, options);
1787 }
1788
1797 void
1798 draw_mask(double ink, VImage mask, int x, int y, VOption *options = nullptr) const
1799 {
1800 return draw_mask(to_vector(ink), mask, x, y, options);
1801 }
1802
1824 static VImage thumbnail_buffer(void *buf, size_t len, int width, VOption *options = nullptr);
1825
1826 // Operator overloads
1827
1828 VImage operator[](int index) const;
1829
1830 std::vector<double> operator()(int x, int y) const;
1831
1833 operator+(const VImage a, const VImage b);
1835 operator+(const double a, const VImage b);
1837 operator+(const VImage a, const double b);
1839 operator+(const std::vector<double> a, const VImage b);
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
1851 operator-(const VImage a, const VImage b);
1853 operator-(const double a, const VImage b);
1855 operator-(const VImage a, const double b);
1857 operator-(const std::vector<double> a, const VImage b);
1859 operator-(const VImage a, const std::vector<double> b);
1860
1861 friend VIPS_CPLUSPLUS_API VImage &
1862 operator-=(VImage &a, const VImage b);
1863 friend VIPS_CPLUSPLUS_API VImage &
1864 operator-=(VImage &a, const double b);
1865 friend VIPS_CPLUSPLUS_API VImage &
1866 operator-=(VImage &a, const std::vector<double> b);
1867
1869 operator-(const VImage a);
1870
1872 operator*(const VImage a, const VImage b);
1874 operator*(const double a, const VImage b);
1876 operator*(const VImage a, const double b);
1878 operator*(const std::vector<double> a, const VImage b);
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
1890 operator/(const VImage a, const VImage b);
1892 operator/(const double a, const VImage b);
1894 operator/(const VImage a, const double b);
1896 operator/(const std::vector<double> a, const VImage b);
1898 operator/(const VImage a, const std::vector<double> b);
1899
1900 friend VIPS_CPLUSPLUS_API VImage &
1901 operator/=(VImage &a, const VImage b);
1902 friend VIPS_CPLUSPLUS_API VImage &
1903 operator/=(VImage &a, const double b);
1904 friend VIPS_CPLUSPLUS_API VImage &
1905 operator/=(VImage &a, const std::vector<double> b);
1906
1908 operator%(const VImage a, const VImage b);
1910 operator%(const VImage a, const double b);
1912 operator%(const VImage a, const std::vector<double> b);
1913
1914 friend VIPS_CPLUSPLUS_API VImage &
1915 operator%=(VImage &a, const VImage b);
1916 friend VIPS_CPLUSPLUS_API VImage &
1917 operator%=(VImage &a, const double b);
1918 friend VIPS_CPLUSPLUS_API VImage &
1919 operator%=(VImage &a, const std::vector<double> b);
1920
1922 operator<(const VImage a, const VImage b);
1924 operator<(const double a, const VImage b);
1926 operator<(const VImage a, const double b);
1928 operator<(const std::vector<double> a, const VImage b);
1930 operator<(const VImage a, const std::vector<double> b);
1931
1933 operator<=(const VImage a, const VImage b);
1935 operator<=(const double a, const VImage b);
1937 operator<=(const VImage a, const double b);
1939 operator<=(const std::vector<double> a, const VImage b);
1941 operator<=(const VImage a, const std::vector<double> b);
1942
1944 operator>(const VImage a, const VImage b);
1946 operator>(const double a, const VImage b);
1948 operator>(const VImage a, const double b);
1950 operator>(const std::vector<double> a, const VImage b);
1952 operator>(const VImage a, const std::vector<double> b);
1953
1955 operator>=(const VImage a, const VImage b);
1957 operator>=(const double a, const VImage b);
1959 operator>=(const VImage a, const double b);
1961 operator>=(const std::vector<double> a, const VImage b);
1963 operator>=(const VImage a, const std::vector<double> b);
1964
1966 operator==(const VImage a, const VImage b);
1968 operator==(const double a, const VImage b);
1970 operator==(const VImage a, const double b);
1972 operator==(const std::vector<double> a, const VImage b);
1974 operator==(const VImage a, const std::vector<double> b);
1975
1977 operator!=(const VImage a, const VImage b);
1979 operator!=(const double a, const VImage b);
1981 operator!=(const VImage a, const double b);
1983 operator!=(const std::vector<double> a, const VImage b);
1985 operator!=(const VImage a, const std::vector<double> b);
1986
1988 operator&(const VImage a, const VImage b);
1990 operator&(const double a, const VImage b);
1992 operator&(const VImage a, const double b);
1994 operator&(const std::vector<double> a, const VImage b);
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
2006 operator|(const VImage a, const VImage b);
2008 operator|(const double a, const VImage b);
2010 operator|(const VImage a, const double b);
2012 operator|(const std::vector<double> a, const VImage b);
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
2024 operator^(const VImage a, const VImage b);
2026 operator^(const double a, const VImage b);
2028 operator^(const VImage a, const double b);
2030 operator^(const std::vector<double> a, const VImage b);
2032 operator^(const VImage a, const std::vector<double> b);
2033
2034 friend VIPS_CPLUSPLUS_API VImage &
2035 operator^=(VImage &a, const VImage b);
2036 friend VIPS_CPLUSPLUS_API VImage &
2037 operator^=(VImage &a, const double b);
2038 friend VIPS_CPLUSPLUS_API VImage &
2039 operator^=(VImage &a, const std::vector<double> b);
2040
2042 operator<<(const VImage a, const VImage b);
2044 operator<<(const VImage a, const double b);
2046 operator<<(const VImage a, const std::vector<double> b);
2047
2048 friend VIPS_CPLUSPLUS_API VImage &
2049 operator<<=(VImage &a, const VImage b);
2050 friend VIPS_CPLUSPLUS_API VImage &
2051 operator<<=(VImage &a, const double b);
2052 friend VIPS_CPLUSPLUS_API VImage &
2053 operator<<=(VImage &a, const std::vector<double> b);
2054
2056 operator>>(const VImage a, const VImage b);
2058 operator>>(const VImage a, const double b);
2060 operator>>(const VImage a, const std::vector<double> b);
2061
2062 friend VIPS_CPLUSPLUS_API VImage &
2063 operator>>=(VImage &a, const VImage b);
2064 friend VIPS_CPLUSPLUS_API VImage &
2065 operator>>=(VImage &a, const double b);
2066 friend VIPS_CPLUSPLUS_API VImage &
2067 operator>>=(VImage &a, const std::vector<double> b);
2068
2069 // Compat operations
2070
2071 static VImage
2072 new_from_memory_steal(void *data, size_t size,
2073 int width, int height, int bands, VipsBandFormat format);
2074
2087 [[deprecated("Use 'rawsave_target' instead")]]
2088 void rawsave_fd(int fd, VOption *options = nullptr) const;
2089
2090 /* Automatically generated members.
2091 *
2092 * Rebuild with:
2093 *
2094 * meson compile -Cbuild vips-operators-header
2095 *
2096 * Then delete from here to the end of the class and paste in
2097 * vips-operators.h. We could just #include "vips-operators.h", but
2098 * that confuses doxygen.
2099 */
2100
2101 // headers for vips operations
2102 // this file is generated automatically, do not edit!
2103 // clang-format off
2104
2110 VImage CMC2LCh(VOption *options = nullptr) const;
2111
2117 VImage CMYK2XYZ(VOption *options = nullptr) const;
2118
2124 VImage HSV2sRGB(VOption *options = nullptr) const;
2125
2131 VImage LCh2CMC(VOption *options = nullptr) const;
2132
2138 VImage LCh2Lab(VOption *options = nullptr) const;
2139
2145 VImage Lab2LCh(VOption *options = nullptr) const;
2146
2152 VImage Lab2LabQ(VOption *options = nullptr) const;
2153
2159 VImage Lab2LabS(VOption *options = nullptr) const;
2160
2170 VImage Lab2XYZ(VOption *options = nullptr) const;
2171
2177 VImage LabQ2Lab(VOption *options = nullptr) const;
2178
2184 VImage LabQ2LabS(VOption *options = nullptr) const;
2185
2191 VImage LabQ2sRGB(VOption *options = nullptr) const;
2192
2198 VImage LabS2Lab(VOption *options = nullptr) const;
2199
2205 VImage LabS2LabQ(VOption *options = nullptr) const;
2206
2212 VImage Oklab2Oklch(VOption *options = nullptr) const;
2213
2219 VImage Oklab2XYZ(VOption *options = nullptr) const;
2220
2226 VImage Oklch2Oklab(VOption *options = nullptr) const;
2227
2233 VImage XYZ2CMYK(VOption *options = nullptr) const;
2234
2244 VImage XYZ2Lab(VOption *options = nullptr) const;
2245
2251 VImage XYZ2Oklab(VOption *options = nullptr) const;
2252
2258 VImage XYZ2Yxy(VOption *options = nullptr) const;
2259
2265 VImage XYZ2scRGB(VOption *options = nullptr) const;
2266
2272 VImage Yxy2XYZ(VOption *options = nullptr) const;
2273
2279 VImage abs(VOption *options = nullptr) const;
2280
2287 VImage add(VImage right, VOption *options = nullptr) const;
2288
2294 VImage addalpha(VOption *options = nullptr) const;
2295
2314 VImage affine(std::vector<double> matrix, VOption *options = nullptr) const;
2315
2329 static VImage analyzeload(const char *filename, VOption *options = nullptr);
2330
2347 static VImage arrayjoin(std::vector<VImage> in, VOption *options = nullptr);
2348
2354 VImage autorot(VOption *options = nullptr) const;
2355
2361 double avg(VOption *options = nullptr) const;
2362
2369 VImage bandbool(VipsOperationBoolean boolean, VOption *options = nullptr) const;
2370
2380 VImage bandfold(VOption *options = nullptr) const;
2381
2388 static VImage bandjoin(std::vector<VImage> in, VOption *options = nullptr);
2389
2396 VImage bandjoin_const(std::vector<double> c, VOption *options = nullptr) const;
2397
2403 VImage bandmean(VOption *options = nullptr) const;
2404
2415 static VImage bandrank(std::vector<VImage> in, VOption *options = nullptr);
2416
2426 VImage bandunfold(VOption *options = nullptr) const;
2427
2439 static VImage black(int width, int height, VOption *options = nullptr);
2440
2448 VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options = nullptr) const;
2449
2457 VImage boolean_const(VipsOperationBoolean boolean, std::vector<double> c, VOption *options = nullptr) const;
2458
2464 VImage buildlut(VOption *options = nullptr) const;
2465
2471 VImage byteswap(VOption *options = nullptr) const;
2472
2485 VImage cache(VOption *options = nullptr) const;
2486
2497 VImage canny(VOption *options = nullptr) const;
2498
2505 VImage case_image(std::vector<VImage> cases, VOption *options = nullptr) const;
2506
2517 VImage cast(VipsBandFormat format, VOption *options = nullptr) const;
2518
2529 VImage clamp(VOption *options = nullptr) const;
2530
2541 VImage colourspace(VipsInterpretation space, VOption *options = nullptr) const;
2542
2558 VImage compass(VImage mask, VOption *options = nullptr) const;
2559
2566 VImage complex(VipsOperationComplex cmplx, VOption *options = nullptr) const;
2567
2575 VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options = nullptr) const;
2576
2583 VImage complexform(VImage right, VOption *options = nullptr) const;
2584
2591 VImage complexget(VipsOperationComplexget get, VOption *options = nullptr) const;
2592
2607 static VImage composite(std::vector<VImage> in, std::vector<int> mode, VOption *options = nullptr);
2608
2623 VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options = nullptr) const;
2624
2637 VImage conv(VImage mask, VOption *options = nullptr) const;
2638
2650 VImage conva(VImage mask, VOption *options = nullptr) const;
2651
2662 VImage convasep(VImage mask, VOption *options = nullptr) const;
2663
2670 VImage convf(VImage mask, VOption *options = nullptr) const;
2671
2678 VImage convi(VImage mask, VOption *options = nullptr) const;
2679
2692 VImage convsep(VImage mask, VOption *options = nullptr) const;
2693
2712 VImage copy(VOption *options = nullptr) const;
2713
2720 double countlines(VipsDirection direction, VOption *options = nullptr) const;
2721
2731 VImage crop(int left, int top, int width, int height, VOption *options = nullptr) const;
2732
2750 static VImage csvload(const char *filename, VOption *options = nullptr);
2751
2768 static VImage csvload_source(VSource source, VOption *options = nullptr);
2769
2783 void csvsave(const char *filename, VOption *options = nullptr) const;
2784
2798 void csvsave_target(VTarget target, VOption *options = nullptr) const;
2799
2806 VImage dE00(VImage right, VOption *options = nullptr) const;
2807
2814 VImage dE76(VImage right, VOption *options = nullptr) const;
2815
2822 VImage dECMC(VImage right, VOption *options = nullptr) const;
2823
2838 static VImage dcrawload(const char *filename, VOption *options = nullptr);
2839
2854 static VImage dcrawload_buffer(VipsBlob *buffer, VOption *options = nullptr);
2855
2869 static VImage dcrawload_source(VSource source, VOption *options = nullptr);
2870
2876 double deviate(VOption *options = nullptr) const;
2877
2884 VImage divide(VImage right, VOption *options = nullptr) const;
2885
2898 void draw_circle(std::vector<double> ink, int cx, int cy, int radius, VOption *options = nullptr) const;
2899
2912 void draw_flood(std::vector<double> ink, int x, int y, VOption *options = nullptr) const;
2913
2925 void draw_image(VImage sub, int x, int y, VOption *options = nullptr) const;
2926
2936 void draw_line(std::vector<double> ink, int x1, int y1, int x2, int y2, VOption *options = nullptr) const;
2937
2946 void draw_mask(std::vector<double> ink, VImage mask, int x, int y, VOption *options = nullptr) const;
2947
2961 void draw_rect(std::vector<double> ink, int left, int top, int width, int height, VOption *options = nullptr) const;
2962
2971 void draw_smudge(int left, int top, int width, int height, VOption *options = nullptr) const;
2972
2999 void dzsave(const char *filename, VOption *options = nullptr) const;
3000
3027 VipsBlob *dzsave_buffer(VOption *options = nullptr) const;
3028
3055 void dzsave_target(VTarget target, VOption *options = nullptr) const;
3056
3071 VImage embed(int x, int y, int width, int height, VOption *options = nullptr) const;
3072
3082 VImage extract_area(int left, int top, int width, int height, VOption *options = nullptr) const;
3083
3094 VImage extract_band(int band, VOption *options = nullptr) const;
3095
3108 static VImage eye(int width, int height, VOption *options = nullptr);
3109
3115 VImage falsecolour(VOption *options = nullptr) const;
3116
3123 VImage fastcor(VImage ref, VOption *options = nullptr) const;
3124
3130 VImage fill_nearest(VOption *options = nullptr) const;
3131
3146 int find_trim(int *top, int *width, int *height, VOption *options = nullptr) const;
3147
3161 static VImage fitsload(const char *filename, VOption *options = nullptr);
3162
3175 static VImage fitsload_source(VSource source, VOption *options = nullptr);
3176
3189 void fitssave(const char *filename, VOption *options = nullptr) const;
3190
3201 VImage flatten(VOption *options = nullptr) const;
3202
3209 VImage flip(VipsDirection direction, VOption *options = nullptr) const;
3210
3216 VImage float2rad(VOption *options = nullptr) const;
3217
3226 static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options = nullptr);
3227
3234 VImage freqmult(VImage mask, VOption *options = nullptr) const;
3235
3241 VImage fwfft(VOption *options = nullptr) const;
3242
3252 VImage gamma(VOption *options = nullptr) const;
3253
3265 VImage gaussblur(double sigma, VOption *options = nullptr) const;
3266
3279 static VImage gaussmat(double sigma, double min_ampl, VOption *options = nullptr);
3280
3294 static VImage gaussnoise(int width, int height, VOption *options = nullptr);
3295
3307 std::vector<double> getpoint(int x, int y, VOption *options = nullptr) const;
3308
3324 static VImage gifload(const char *filename, VOption *options = nullptr);
3325
3341 static VImage gifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3342
3357 static VImage gifload_source(VSource source, VOption *options = nullptr);
3358
3379 void gifsave(const char *filename, VOption *options = nullptr) const;
3380
3401 VipsBlob *gifsave_buffer(VOption *options = nullptr) const;
3402
3423 void gifsave_target(VTarget target, VOption *options = nullptr) const;
3424
3435 VImage globalbalance(VOption *options = nullptr) const;
3436
3450 VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options = nullptr) const;
3451
3463 static VImage grey(int width, int height, VOption *options = nullptr);
3464
3473 VImage grid(int tile_height, int across, int down, VOption *options = nullptr) const;
3474
3492 static VImage heifload(const char *filename, VOption *options = nullptr);
3493
3511 static VImage heifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3512
3529 static VImage heifload_source(VSource source, VOption *options = nullptr);
3530
3551 void heifsave(const char *filename, VOption *options = nullptr) const;
3552
3573 VipsBlob *heifsave_buffer(VOption *options = nullptr) const;
3574
3595 void heifsave_target(VTarget target, VOption *options = nullptr) const;
3596
3602 VImage hist_cum(VOption *options = nullptr) const;
3603
3609 double hist_entropy(VOption *options = nullptr) const;
3610
3620 VImage hist_equal(VOption *options = nullptr) const;
3621
3631 VImage hist_find(VOption *options = nullptr) const;
3632
3643 VImage hist_find_indexed(VImage index, VOption *options = nullptr) const;
3644
3654 VImage hist_find_ndim(VOption *options = nullptr) const;
3655
3661 bool hist_ismonotonic(VOption *options = nullptr) const;
3662
3674 VImage hist_local(int width, int height, VOption *options = nullptr) const;
3675
3682 VImage hist_match(VImage ref, VOption *options = nullptr) const;
3683
3689 VImage hist_norm(VOption *options = nullptr) const;
3690
3696 VImage hist_plot(VOption *options = nullptr) const;
3697
3709 VImage hough_circle(VOption *options = nullptr) const;
3710
3721 VImage hough_line(VOption *options = nullptr) const;
3722
3736 VImage icc_export(VOption *options = nullptr) const;
3737
3751 VImage icc_import(VOption *options = nullptr) const;
3752
3768 VImage icc_transform(const char *output_profile, VOption *options = nullptr) const;
3769
3781 static VImage identity(VOption *options = nullptr);
3782
3794 VImage ifthenelse(VImage in1, VImage in2, VOption *options = nullptr) const;
3795
3809 VImage insert(VImage sub, int x, int y, VOption *options = nullptr) const;
3810
3816 VImage invert(VOption *options = nullptr) const;
3817
3827 VImage invertlut(VOption *options = nullptr) const;
3828
3838 VImage invfft(VOption *options = nullptr) const;
3839
3854 VImage join(VImage in2, VipsDirection direction, VOption *options = nullptr) const;
3855
3871 static VImage jp2kload(const char *filename, VOption *options = nullptr);
3872
3888 static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3889
3904 static VImage jp2kload_source(VSource source, VOption *options = nullptr);
3905
3923 void jp2ksave(const char *filename, VOption *options = nullptr) const;
3924
3942 VipsBlob *jp2ksave_buffer(VOption *options = nullptr) const;
3943
3961 void jp2ksave_target(VTarget target, VOption *options = nullptr) const;
3962
3979 static VImage jpegload(const char *filename, VOption *options = nullptr);
3980
3997 static VImage jpegload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3998
4014 static VImage jpegload_source(VSource source, VOption *options = nullptr);
4015
4037 void jpegsave(const char *filename, VOption *options = nullptr) const;
4038
4060 VipsBlob *jpegsave_buffer(VOption *options = nullptr) const;
4061
4082 void jpegsave_mime(VOption *options = nullptr) const;
4083
4105 void jpegsave_target(VTarget target, VOption *options = nullptr) const;
4106
4122 static VImage jxlload(const char *filename, VOption *options = nullptr);
4123
4139 static VImage jxlload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4140
4155 static VImage jxlload_source(VSource source, VOption *options = nullptr);
4156
4175 void jxlsave(const char *filename, VOption *options = nullptr) const;
4176
4195 VipsBlob *jxlsave_buffer(VOption *options = nullptr) const;
4196
4215 void jxlsave_target(VTarget target, VOption *options = nullptr) const;
4216
4222 VImage labelregions(VOption *options = nullptr) const;
4223
4235 VImage linear(std::vector<double> a, std::vector<double> b, VOption *options = nullptr) const;
4236
4249 VImage linecache(VOption *options = nullptr) const;
4250
4263 static VImage logmat(double sigma, double min_ampl, VOption *options = nullptr);
4264
4280 static VImage magickload(const char *filename, VOption *options = nullptr);
4281
4297 static VImage magickload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4298
4314 static VImage magickload_source(VSource source, VOption *options = nullptr);
4315
4333 void magicksave(const char *filename, VOption *options = nullptr) const;
4334
4352 VipsBlob *magicksave_buffer(VOption *options = nullptr) const;
4353
4367 VImage mapim(VImage index, VOption *options = nullptr) const;
4368
4379 VImage maplut(VImage lut, VOption *options = nullptr) const;
4380
4398 static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4399
4419 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);
4420
4439 static VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4440
4456 static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options = nullptr);
4457
4474 static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4475
4494 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);
4495
4513 static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4514
4530 static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options = nullptr);
4531
4549 static VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = nullptr);
4550
4567 static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options = nullptr);
4568
4590 VImage match(VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = nullptr) const;
4591
4598 VImage math(VipsOperationMath math, VOption *options = nullptr) const;
4599
4607 VImage math2(VImage right, VipsOperationMath2 math2, VOption *options = nullptr) const;
4608
4616 VImage math2_const(VipsOperationMath2 math2, std::vector<double> c, VOption *options = nullptr) const;
4617
4631 static VImage matload(const char *filename, VOption *options = nullptr);
4632
4638 VImage matrixinvert(VOption *options = nullptr) const;
4639
4653 static VImage matrixload(const char *filename, VOption *options = nullptr);
4654
4667 static VImage matrixload_source(VSource source, VOption *options = nullptr);
4668
4675 VImage matrixmultiply(VImage right, VOption *options = nullptr) const;
4676
4688 void matrixprint(VOption *options = nullptr) const;
4689
4702 void matrixsave(const char *filename, VOption *options = nullptr) const;
4703
4716 void matrixsave_target(VTarget target, VOption *options = nullptr) const;
4717
4727 double max(VOption *options = nullptr) const;
4728
4735 VImage maxpair(VImage right, VOption *options = nullptr) const;
4736
4751 VImage measure(int h, int v, VOption *options = nullptr) const;
4752
4766 VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options = nullptr) const;
4767
4777 double min(VOption *options = nullptr) const;
4778
4785 VImage minpair(VImage right, VOption *options = nullptr) const;
4786
4794 VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options = nullptr) const;
4795
4814 VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = nullptr) const;
4815
4839 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;
4840
4850 VImage msb(VOption *options = nullptr) const;
4851
4858 VImage multiply(VImage right, VOption *options = nullptr) const;
4859
4873 static VImage niftiload(const char *filename, VOption *options = nullptr);
4874
4887 static VImage niftiload_source(VSource source, VOption *options = nullptr);
4888
4901 void niftisave(const char *filename, VOption *options = nullptr) const;
4902
4916 static VImage openexrload(const char *filename, VOption *options = nullptr);
4917
4936 static VImage openslideload(const char *filename, VOption *options = nullptr);
4937
4955 static VImage openslideload_source(VSource source, VOption *options = nullptr);
4956
4977 static VImage pdfload(const char *filename, VOption *options = nullptr);
4978
4999 static VImage pdfload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5000
5020 static VImage pdfload_source(VSource source, VOption *options = nullptr);
5021
5028 int percent(double percent, VOption *options = nullptr) const;
5029
5043 static VImage perlin(int width, int height, VOption *options = nullptr);
5044
5051 VImage phasecor(VImage in2, VOption *options = nullptr) const;
5052
5067 static VImage pngload(const char *filename, VOption *options = nullptr);
5068
5083 static VImage pngload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5084
5098 static VImage pngload_source(VSource source, VOption *options = nullptr);
5099
5120 void pngsave(const char *filename, VOption *options = nullptr) const;
5121
5142 VipsBlob *pngsave_buffer(VOption *options = nullptr) const;
5143
5164 void pngsave_target(VTarget target, VOption *options = nullptr) const;
5165
5179 static VImage ppmload(const char *filename, VOption *options = nullptr);
5180
5194 static VImage ppmload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5195
5208 static VImage ppmload_source(VSource source, VOption *options = nullptr);
5209
5225 void ppmsave(const char *filename, VOption *options = nullptr) const;
5226
5242 void ppmsave_target(VTarget target, VOption *options = nullptr) const;
5243
5253 VImage premultiply(VOption *options = nullptr) const;
5254
5260 VImage prewitt(VOption *options = nullptr) const;
5261
5268 VImage profile(VImage *rows, VOption *options = nullptr) const;
5269
5276 static VipsBlob *profile_load(const char *name, VOption *options = nullptr);
5277
5284 VImage project(VImage *rows, VOption *options = nullptr) const;
5285
5296 VImage quadratic(VImage coeff, VOption *options = nullptr) const;
5297
5303 VImage rad2float(VOption *options = nullptr) const;
5304
5318 static VImage radload(const char *filename, VOption *options = nullptr);
5319
5333 static VImage radload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5334
5347 static VImage radload_source(VSource source, VOption *options = nullptr);
5348
5361 void radsave(const char *filename, VOption *options = nullptr) const;
5362
5375 VipsBlob *radsave_buffer(VOption *options = nullptr) const;
5376
5389 void radsave_target(VTarget target, VOption *options = nullptr) const;
5390
5399 VImage rank(int width, int height, int index, VOption *options = nullptr) const;
5400
5420 static VImage rawload(const char *filename, int width, int height, int bands, VOption *options = nullptr);
5421
5434 void rawsave(const char *filename, VOption *options = nullptr) const;
5435
5448 VipsBlob *rawsave_buffer(VOption *options = nullptr) const;
5449
5462 void rawsave_target(VTarget target, VOption *options = nullptr) const;
5463
5470 VImage recomb(VImage m, VOption *options = nullptr) const;
5471
5484 VImage reduce(double hshrink, double vshrink, VOption *options = nullptr) const;
5485
5497 VImage reduceh(double hshrink, VOption *options = nullptr) const;
5498
5510 VImage reducev(double vshrink, VOption *options = nullptr) const;
5511
5520
5528 VImage relational_const(VipsOperationRelational relational, std::vector<double> c, VOption *options = nullptr) const;
5529
5536 VImage remainder(VImage right, VOption *options = nullptr) const;
5537
5544 VImage remainder_const(std::vector<double> c, VOption *options = nullptr) const;
5545
5553 VImage remosaic(const char *old_str, const char *new_str, VOption *options = nullptr) const;
5554
5562 VImage replicate(int across, int down, VOption *options = nullptr) const;
5563
5576 VImage resize(double scale, VOption *options = nullptr) const;
5577
5584 VImage rot(VipsAngle angle, VOption *options = nullptr) const;
5585
5595 VImage rot45(VOption *options = nullptr) const;
5596
5612 VImage rotate(double angle, VOption *options = nullptr) const;
5613
5620 VImage round(VipsOperationRound round, VOption *options = nullptr) const;
5621
5627 VImage sRGB2HSV(VOption *options = nullptr) const;
5628
5634 VImage sRGB2scRGB(VOption *options = nullptr) const;
5635
5645 VImage scRGB2BW(VOption *options = nullptr) const;
5646
5652 VImage scRGB2XYZ(VOption *options = nullptr) const;
5653
5663 VImage scRGB2sRGB(VOption *options = nullptr) const;
5664
5675 VImage scale(VOption *options = nullptr) const;
5676
5682 VImage scharr(VOption *options = nullptr) const;
5683
5699 static VImage sdf(int width, int height, VipsSdfShape shape, VOption *options = nullptr);
5700
5710 VImage sequential(VOption *options = nullptr) const;
5711
5726 VImage sharpen(VOption *options = nullptr) const;
5727
5739 VImage shrink(double hshrink, double vshrink, VOption *options = nullptr) const;
5740
5751 VImage shrinkh(int hshrink, VOption *options = nullptr) const;
5752
5763 VImage shrinkv(int vshrink, VOption *options = nullptr) const;
5764
5770 VImage sign(VOption *options = nullptr) const;
5771
5788 VImage similarity(VOption *options = nullptr) const;
5789
5803 static VImage sines(int width, int height, VOption *options = nullptr);
5804
5817 VImage smartcrop(int width, int height, VOption *options = nullptr) const;
5818
5824 VImage sobel(VOption *options = nullptr) const;
5825
5832 VImage spcor(VImage ref, VOption *options = nullptr) const;
5833
5839 VImage spectrum(VOption *options = nullptr) const;
5840
5846 VImage stats(VOption *options = nullptr) const;
5847
5862 VImage stdif(int width, int height, VOption *options = nullptr) const;
5863
5875 VImage subsample(int xfac, int yfac, VOption *options = nullptr) const;
5876
5883 VImage subtract(VImage right, VOption *options = nullptr) const;
5884
5891 static VImage sum(std::vector<VImage> in, VOption *options = nullptr);
5892
5911 static VImage svgload(const char *filename, VOption *options = nullptr);
5912
5931 static VImage svgload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5932
5950 static VImage svgload_source(VSource source, VOption *options = nullptr);
5951
5958 static VImage switch_image(std::vector<VImage> tests, VOption *options = nullptr);
5959
5972 static void system(const char *cmd_format, VOption *options = nullptr);
5973
5993 static VImage text(const char *text, VOption *options = nullptr);
5994
6014 static VImage thumbnail(const char *filename, int width, VOption *options = nullptr);
6015
6036 static VImage thumbnail_buffer(VipsBlob *buffer, int width, VOption *options = nullptr);
6037
6056 VImage thumbnail_image(int width, VOption *options = nullptr) const;
6057
6078 static VImage thumbnail_source(VSource source, int width, VOption *options = nullptr);
6079
6098 static VImage tiffload(const char *filename, VOption *options = nullptr);
6099
6118 static VImage tiffload_buffer(VipsBlob *buffer, VOption *options = nullptr);
6119
6137 static VImage tiffload_source(VSource source, VOption *options = nullptr);
6138
6171 void tiffsave(const char *filename, VOption *options = nullptr) const;
6172
6205 VipsBlob *tiffsave_buffer(VOption *options = nullptr) const;
6206
6239 void tiffsave_target(VTarget target, VOption *options = nullptr) const;
6240
6255 VImage tilecache(VOption *options = nullptr) const;
6256
6275 static VImage tonelut(VOption *options = nullptr);
6276
6286 VImage transpose3d(VOption *options = nullptr) const;
6287
6293 VImage uhdr2scRGB(VOption *options = nullptr) const;
6294
6309 static VImage uhdrload(const char *filename, VOption *options = nullptr);
6310
6325 static VImage uhdrload_buffer(VipsBlob *buffer, VOption *options = nullptr);
6326
6340 static VImage uhdrload_source(VSource source, VOption *options = nullptr);
6341
6355 void uhdrsave(const char *filename, VOption *options = nullptr) const;
6356
6370 VipsBlob *uhdrsave_buffer(VOption *options = nullptr) const;
6371
6385 void uhdrsave_target(VTarget target, VOption *options = nullptr) const;
6386
6397 VImage unpremultiply(VOption *options = nullptr) const;
6398
6412 static VImage vipsload(const char *filename, VOption *options = nullptr);
6413
6426 static VImage vipsload_source(VSource source, VOption *options = nullptr);
6427
6440 void vipssave(const char *filename, VOption *options = nullptr) const;
6441
6454 void vipssave_target(VTarget target, VOption *options = nullptr) const;
6455
6472 static VImage webpload(const char *filename, VOption *options = nullptr);
6473
6490 static VImage webpload_buffer(VipsBlob *buffer, VOption *options = nullptr);
6491
6507 static VImage webpload_source(VSource source, VOption *options = nullptr);
6508
6536 void webpsave(const char *filename, VOption *options = nullptr) const;
6537
6565 VipsBlob *webpsave_buffer(VOption *options = nullptr) const;
6566
6593 void webpsave_mime(VOption *options = nullptr) const;
6594
6622 void webpsave_target(VTarget target, VOption *options = nullptr) const;
6623
6636 static VImage worley(int width, int height, VOption *options = nullptr);
6637
6648 VImage wrap(VOption *options = nullptr) const;
6649
6663 static VImage xyz(int width, int height, VOption *options = nullptr);
6664
6676 static VImage zone(int width, int height, VOption *options = nullptr);
6677
6685 VImage zoom(int xfac, int yfac, VOption *options = nullptr) const;
6686};
6687
6688VIPS_NAMESPACE_END
6689
6690#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:1641
VImage rint(VOption *options=nullptr) const
Definition VImage8.h:1311
VImage fastcor(VImage ref, VOption *options=nullptr) const
Definition vips-operators.cpp:1133
VImage scRGB2sRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:3326
void niftisave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2635
void set(const char *field, double *value, int n)
Definition VImage8.h:630
VImage flatten(VOption *options=nullptr) const
Definition vips-operators.cpp:1205
VImage convi(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:751
static VImage uhdrload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:3835
double xres() const
Definition VImage8.h:500
static VImage bandrank(std::vector< VImage > in, VOption *options=nullptr)
Definition vips-operators.cpp:442
VImage sign(VOption *options=nullptr) const
Definition vips-operators.cpp:3440
VImage stdif(int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:3540
static VImage svgload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3617
static VImage switch_image(std::vector< VImage > tests, VOption *options=nullptr)
Definition vips-operators.cpp:3629
VImage conv(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:699
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:2182
VImage atan2(VImage other, VOption *options=nullptr) const
Definition VImage8.h:1603
static VImage gifload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1370
int get_int(const char *field) const
Definition VImage8.h:707
static VImage radload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2957
VipsBlob * tiffsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:3756
static VImage zone(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:4048
std::vector< double > get_array_double(const char *field) const
Definition VImage8.h:771
void set(const char *field, int *value, int n)
Definition VImage8.h:607
static VImage new_matrixv(int width, int height,...)
Definition VImage.cpp:657
void set(const char *field, std::vector< int > value)
Definition VImage8.h:618
static VImage jp2kload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1840
void draw_point(std::vector< double > ink, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1766
VipsBlob * pngsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:2798
double deviate(VOption *options=nullptr) const
Definition vips-operators.cpp:933
VImage fill_nearest(VOption *options=nullptr) const
Definition vips-operators.cpp:1146
const char * filename() const
Definition VImage8.h:546
void rawsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3071
VImage wop(VImage other, VOption *options=nullptr) const
Definition VImage8.h:1574
void rawsave_fd(int fd, VOption *options=nullptr) const
Definition VImage.cpp:1563
VImage matrixmultiply(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2416
VImage msb(VOption *options=nullptr) const
Definition vips-operators.cpp:2586
VImage hough_circle(VOption *options=nullptr) const
Definition vips-operators.cpp:1665
static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options=nullptr)
Definition vips-operators.cpp:2291
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:2275
VImage subsample(int xfac, int yfac, VOption *options=nullptr) const
Definition vips-operators.cpp:3554
VImage matrixinvert(VOption *options=nullptr) const
Definition vips-operators.cpp:2380
VImage divide(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:945
VImage gaussblur(double sigma, VOption *options=nullptr) const
Definition vips-operators.cpp:1293
VImage extract_area(int left, int top, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:1079
VImage replicate(int across, int down, VOption *options=nullptr) const
Definition vips-operators.cpp:3200
VImage exp10(VOption *options=nullptr) const
Definition VImage8.h:1536
VImage exp(VOption *options=nullptr) const
Definition VImage8.h:1527
VipsBlob * webpsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:3983
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:2228
VImage copy(VOption *options=nullptr) const
Definition vips-operators.cpp:777
static VImage fitsload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1173
G_DEPRECATED VImage cache(VOption *options=nullptr) const
Definition vips-operators.cpp:531
void * write_to_memory(size_t *size) const
Definition VImage8.h:1102
static VImage ppmload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2830
static VImage webpload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:3951
static VImage vipsload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3911
static VImage heifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1477
void fitssave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1197
VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options=nullptr) const
Definition vips-operators.cpp:2532
static VImage matrixload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2404
static VImage gifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1358
void gifsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1402
VImage Yxy2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:270
static VImage csvload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:818
static VImage uhdrload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3847
static VImage pngload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2754
VImage rot45(VOption *options=nullptr) const
Definition vips-operators.cpp:3240
static VImage new_memory()
Definition VImage8.h:874
static VImage jpegload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1892
void jp2ksave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1872
bool has_alpha() const
Definition VImage8.h:536
static VImage new_from_file(const char *name, VOption *options=nullptr)
Definition VImage.cpp:556
VImage bandjoin(double other, VOption *options=nullptr) const
Definition VImage8.h:1180
void draw_smudge(int left, int top, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:1024
void set(const char *field, int value)
Definition VImage8.h:596
VImage conva(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:712
void uhdrsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3879
VImage gamma(VOption *options=nullptr) const
Definition vips-operators.cpp:1281
VImage sin(VOption *options=nullptr) const
Definition VImage8.h:1401
void csvsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:850
VImage hist_match(VImage ref, VOption *options=nullptr) const
Definition vips-operators.cpp:1628
static VImage jpegload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1904
VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition vips-operators.cpp:479
void uhdrsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3859
VImage byteswap(VOption *options=nullptr) const
Definition vips-operators.cpp:519
VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options=nullptr) const
Definition vips-operators.cpp:2491
static VImage jp2kload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1816
static VImage vipsload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3899
VImage project(VImage *rows, VOption *options=nullptr) const
Definition vips-operators.cpp:2919
VImage recomb(VImage m, VOption *options=nullptr) const
Definition vips-operators.cpp:3079
static VImage jxlload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1975
VImage write(VImage out) const
Definition VImage.cpp:674
static VImage tiffload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:3724
VImage rotate(double angle, VOption *options=nullptr) const
Definition vips-operators.cpp:3252
VImage LabS2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:150
VImage bandeor(VOption *options=nullptr) const
Definition VImage8.h:1347
VImage bandjoin_const(std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:417
static VImage sum(std::vector< VImage > in, VOption *options=nullptr)
Definition vips-operators.cpp:3581
VipsBlob * jxlsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1995
VImage wrap(VOption *options=nullptr) const
Definition vips-operators.cpp:4023
static VImage niftiload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2623
VImage affine(std::vector< double > matrix, VOption *options=nullptr) const
Definition vips-operators.cpp:319
VImage dE76(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:871
static VImage tiffload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3712
VImage rot90(VOption *options=nullptr) const
Definition VImage8.h:1233
void radsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2993
void jp2ksave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1852
VImage smartcrop(int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:3477
VImage new_from_image(double pixel) const
Definition VImage8.h:1032
static VImage gaussnoise(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:1319
static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2261
VImage reduceh(double hshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3106
VImage Oklab2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:186
VImage case_image(std::vector< VImage > cases, VOption *options=nullptr) const
Definition vips-operators.cpp:555
static VImage pdfload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2679
static VImage fitsload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1185
VImage remainder_const(std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:3173
VImage atanh(VOption *options=nullptr) const
Definition VImage8.h:1500
VImage median(int size=3, VOption *options=nullptr) const
Definition VImage8.h:1284
VipsImage * get_image() const
Definition VImage8.h:426
void csvsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:842
static VImage pdfload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2691
VImage bandor(VOption *options=nullptr) const
Definition VImage8.h:1335
VImage convasep(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:725
VImage compass(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:606
static VImage svgload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3593
void magicksave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2102
VImage uhdr2scRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:3811
VImage flipver(VOption *options=nullptr) const
Definition VImage8.h:1224
VImage hist_local(int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:1614
void webpsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3975
static VImage jpegload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1880
static VImage logmat(double sigma, double min_ampl, VOption *options=nullptr)
Definition vips-operators.cpp:2053
static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2148
std::complex< double > minpos(VOption *options=nullptr) const
Definition VImage.cpp:855
VImage LabQ2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:114
std::complex< double > maxpos(VOption *options=nullptr) const
Definition VImage.cpp:867
const void * get_blob(const char *field, size_t *length) const
Definition VImage8.h:825
VImage sobel(VOption *options=nullptr) const
Definition vips-operators.cpp:3491
static VImage xyz(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:4035
VipsCoding coding() const
Definition VImage8.h:471
VImage remainder(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:3160
static VImage magickload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2078
static VImage dcrawload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:921
VImage LCh2CMC(VOption *options=nullptr) const
Definition vips-operators.cpp:42
VImage spcor(VImage ref, VOption *options=nullptr) const
Definition vips-operators.cpp:3503
void set(const char *field, const VImage value)
Definition VImage8.h:686
static VImage text(const char *text, VOption *options=nullptr)
Definition vips-operators.cpp:3648
VImage hist_cum(VOption *options=nullptr) const
Definition vips-operators.cpp:1529
VImage crop(int left, int top, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:802
void tiffsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3768
VImage float2rad(VOption *options=nullptr) const
Definition vips-operators.cpp:1230
VImage globalbalance(VOption *options=nullptr) const
Definition vips-operators.cpp:1410
std::vector< VImage > bandsplit(VOption *options=nullptr) const
Definition VImage.cpp:823
VImage atan2(double other, VOption *options=nullptr) const
Definition VImage8.h:1612
VImage pow(double other, VOption *options=nullptr) const
Definition VImage8.h:1554
double avg(VOption *options=nullptr) const
Definition vips-operators.cpp:368
VImage sequential(VOption *options=nullptr) const
Definition vips-operators.cpp:3376
VipsBlob * radsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:3001
static VImage matrixload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2392
VImage hist_find(VOption *options=nullptr) const
Definition vips-operators.cpp:1565
void write_to_buffer(const char *suffix, void **buf, size_t *size, VOption *options=nullptr) const
Definition VImage.cpp:702
void draw_image(VImage sub, int x, int y, VOption *options=nullptr) const
Definition vips-operators.cpp:979
void webpsave_mime(VOption *options=nullptr) const
Definition vips-operators.cpp:3995
static VImage pngload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2766
VImage dE00(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:858
VipsBlob * uhdrsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:3867
VImage rect(VOption *options=nullptr) const
Definition VImage8.h:1383
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:2564
static void call(const char *operation_name, VOption *options=nullptr)
Definition VImage.cpp:550
static VImage jxlload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1951
static VImage arrayjoin(std::vector< VImage > in, VOption *options=nullptr)
Definition vips-operators.cpp:344
void matrixprint(VOption *options=nullptr) const
Definition vips-operators.cpp:2429
VImage grid(int tile_height, int across, int down, VOption *options=nullptr) const
Definition vips-operators.cpp:1450
void ppmsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2854
VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:1422
static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1828
const char * get_string(const char *field) const
Definition VImage8.h:808
VImage polar(VOption *options=nullptr) const
Definition VImage8.h:1374
static VImage gaussmat(double sigma, double min_ampl, VOption *options=nullptr)
Definition vips-operators.cpp:1306
int find_trim(int *top, int *width, int *height, VOption *options=nullptr) const
Definition vips-operators.cpp:1158
VImage linecache(VOption *options=nullptr) const
Definition vips-operators.cpp:2041
VImage bandjoin(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1190
static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options=nullptr)
Definition vips-operators.cpp:2199
static VImage magickload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2090
VImage fwfft(VOption *options=nullptr) const
Definition vips-operators.cpp:1269
VImage autorot(VOption *options=nullptr) const
Definition vips-operators.cpp:356
VImage phasecor(VImage in2, VOption *options=nullptr) const
Definition vips-operators.cpp:2741
VImage ifthenelse(std::vector< double > th, VImage el, VOption *options=nullptr) const
Definition VImage8.h:1633
void webpsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:4002
VImage resize(double scale, VOption *options=nullptr) const
Definition vips-operators.cpp:3214
static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options=nullptr)
Definition vips-operators.cpp:1242
static VImage gifload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1346
VImage XYZ2Yxy(VOption *options=nullptr) const
Definition vips-operators.cpp:246
VImage XYZ2scRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:258
static VImage niftiload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2611
VImage complexget(VipsOperationComplexget get, VOption *options=nullptr) const
Definition vips-operators.cpp:659
void matrixsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2436
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:2306
void dzsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1055
VImage pow(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1564
VImage bandunfold(VOption *options=nullptr) const
Definition vips-operators.cpp:454
VImage reduce(double hshrink, double vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3092
void set(const char *field, VipsCallbackFn free_fn, void *data, size_t length)
Definition VImage8.h:675
VipsBlob * magicksave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:2110
VImage bandand(VOption *options=nullptr) const
Definition VImage8.h:1323
void draw_line(double ink, int x1, int y1, int x2, int y2, VOption *options=nullptr) const
Definition VImage8.h:1721
void vipssave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3923
VImage hist_equal(VOption *options=nullptr) const
Definition vips-operators.cpp:1553
VImage hist_find_ndim(VOption *options=nullptr) const
Definition vips-operators.cpp:1590
VImage new_from_image(std::vector< double > pixel) const
Definition VImage8.h:1016
static VImage thumbnail_source(VSource source, int width, VOption *options=nullptr)
Definition vips-operators.cpp:3699
static VipsBlob * profile_load(const char *name, VOption *options=nullptr)
Definition vips-operators.cpp:2907
static VImage openslideload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2655
VImage imag(VOption *options=nullptr) const
Definition VImage8.h:1365
static VImage matload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2368
VImage add(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:294
static VImage new_from_memory_steal(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition VImage.cpp:635
void rawsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3051
static VImage thumbnail(const char *filename, int width, VOption *options=nullptr)
Definition vips-operators.cpp:3660
VipsBlob * heifsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1509
VipsBlob * jp2ksave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1860
static VImage pdfload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2703
static VImage eye(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:1108
VImage ifthenelse(std::vector< double > th, std::vector< double > el, VOption *options=nullptr) const
Definition VImage8.h:1655
VImage HSV2sRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:30
void ppmsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2862
VImage hist_find_indexed(VImage index, VOption *options=nullptr) const
Definition vips-operators.cpp:1577
static VImage radload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2981
static VImage jxlload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:1963
VImage boolean_const(VipsOperationBoolean boolean, std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:493
double hist_entropy(VOption *options=nullptr) const
Definition vips-operators.cpp:1541
VImage dECMC(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:884
VImage copy_memory() const
Definition VImage8.h:1050
static VImage tonelut(VOption *options=nullptr)
Definition vips-operators.cpp:3788
VImage wop(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1593
static VImage ppmload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2818
VImage insert(VImage sub, int x, int y, VOption *options=nullptr) const
Definition vips-operators.cpp:1751
VImage relational(VImage right, VipsOperationRelational relational, VOption *options=nullptr) const
Definition vips-operators.cpp:3132
void get_array_double(const char *field, double **out, int *n) const
Definition VImage8.h:758
VImage sRGB2scRGB(VOption *options=nullptr) const
Definition vips-operators.cpp:3290
int percent(double percent, VOption *options=nullptr) const
Definition vips-operators.cpp:2715
VImage atan(VOption *options=nullptr) const
Definition VImage8.h:1446
bool remove(const char *name) const
Definition VImage8.h:841
VImage sinh(VOption *options=nullptr) const
Definition VImage8.h:1455
VImage icc_export(VOption *options=nullptr) const
Definition vips-operators.cpp:1689
VImage pow(VImage other, VOption *options=nullptr) const
Definition VImage8.h:1545
VImage log(VOption *options=nullptr) const
Definition VImage8.h:1509
static VImage new_from_buffer(const void *buf, size_t len, const char *option_string, VOption *options=nullptr)
Definition VImage.cpp:579
static VImage tiffload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3736
VImage clamp(VOption *options=nullptr) const
Definition vips-operators.cpp:581
static VImage pngload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2778
void matrixsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2444
VImage asin(VOption *options=nullptr) const
Definition VImage8.h:1428
VImage gainmap() const
Definition VImage8.h:555
VImage ceil(VOption *options=nullptr) const
Definition VImage8.h:1302
static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options=nullptr)
Definition vips-operators.cpp:2213
VImage scharr(VOption *options=nullptr) const
Definition vips-operators.cpp:3350
VImage rot(VipsAngle angle, VOption *options=nullptr) const
Definition vips-operators.cpp:3227
static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=nullptr)
Definition vips-operators.cpp:2245
VImage bandjoin(VImage other, VOption *options=nullptr) const
Definition VImage.cpp:835
VImage relational_const(VipsOperationRelational relational, std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:3146
static void call_option_string(const char *operation_name, const char *option_string, VOption *options=nullptr)
Definition VImage.cpp:493
VImage remosaic(const char *old_str, const char *new_str, VOption *options=nullptr) const
Definition vips-operators.cpp:3186
VImage convsep(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:764
void draw_flood(double ink, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1784
VImage dilate(VImage mask, VOption *options=nullptr) const
Definition VImage8.h:1262
void jxlsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2007
VImage hough_line(VOption *options=nullptr) const
Definition vips-operators.cpp:1677
static VImage csvload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:830
VImage invfft(VOption *options=nullptr) const
Definition vips-operators.cpp:1790
static VImage sdf(int width, int height, VipsSdfShape shape, VOption *options=nullptr)
Definition vips-operators.cpp:3362
double yres() const
Definition VImage8.h:509
static VImage grey(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:1437
void set(const char *field, std::vector< double > value)
Definition VImage8.h:641
double max(VOption *options=nullptr) const
Definition vips-operators.cpp:2452
static VImage thumbnail_buffer(void *buf, size_t len, int width, VOption *options=nullptr)
Definition VImage.cpp:775
void vipssave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3931
VImage scRGB2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:3314
VImage Lab2XYZ(VOption *options=nullptr) const
Definition vips-operators.cpp:102
void radsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:3013
static VImage radload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:2969
int yoffset() const
Definition VImage8.h:527
VImage complexform(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:646
static VImage black(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:466
VImage falsecolour(VOption *options=nullptr) const
Definition vips-operators.cpp:1121
VipsBlob * jpegsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1924
VipsInterpretation interpretation() const
Definition VImage8.h:481
static VImage identity(VOption *options=nullptr)
Definition vips-operators.cpp:1726
int height() const
Definition VImage8.h:444
void set(const char *field, const char *value)
Definition VImage8.h:662
void gifsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1382
VImage acos(VOption *options=nullptr) const
Definition VImage8.h:1437
void draw_circle(double ink, int cx, int cy, int radius, VOption *options=nullptr) const
Definition VImage8.h:1706
VImage math2(VImage right, VipsOperationMath2 math2, VOption *options=nullptr) const
Definition vips-operators.cpp:2340
VImage spectrum(VOption *options=nullptr) const
Definition vips-operators.cpp:3516
static VImage worley(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:4010
VImage sRGB2HSV(VOption *options=nullptr) const
Definition vips-operators.cpp:3278
VImage abs(VOption *options=nullptr) const
Definition vips-operators.cpp:282
VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options=nullptr) const
Definition vips-operators.cpp:685
GType get_typeof(const char *field) const
Definition VImage8.h:696
VRegion region() const
Definition VImage.cpp:795
VImage stats(VOption *options=nullptr) const
Definition vips-operators.cpp:3528
VImage linear(std::vector< double > a, double b, VOption *options=nullptr) const
Definition VImage8.h:1149
VImage bandmean(VOption *options=nullptr) const
Definition vips-operators.cpp:430
VImage embed(int x, int y, int width, int height, VOption *options=nullptr) const
Definition vips-operators.cpp:1063
std::vector< int > get_array_int(const char *field) const
Definition VImage8.h:737
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:2164
static VImage new_matrix(int width, int height, double *array, int size)
Definition VImage8.h:993
VImage real(VOption *options=nullptr) const
Definition VImage8.h:1356
VImage rot180(VOption *options=nullptr) const
Definition VImage8.h:1242
static VImage magickload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2066
VipsInterpretation guess_interpretation() const
Definition VImage8.h:491
double get_double(const char *field) const
Definition VImage8.h:791
static VImage perlin(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:2728
VImage cos(VOption *options=nullptr) const
Definition VImage8.h:1410
VImage Lab2LabQ(VOption *options=nullptr) const
Definition vips-operators.cpp:78
void tiffsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:3748
static VImage openexrload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:2643
VImage shrinkh(int hshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3414
VImage hist_plot(VOption *options=nullptr) const
Definition vips-operators.cpp:1653
VImage tanh(VOption *options=nullptr) const
Definition VImage8.h:1473
VImage zoom(int xfac, int yfac, VOption *options=nullptr) const
Definition vips-operators.cpp:4061
VImage bandfold(VOption *options=nullptr) const
Definition vips-operators.cpp:393
VImage premultiply(VOption *options=nullptr) const
Definition vips-operators.cpp:2870
int bands() const
Definition VImage8.h:453
VImage ifthenelse(double th, double el, VOption *options=nullptr) const
Definition VImage8.h:1687
VImage tilecache(VOption *options=nullptr) const
Definition vips-operators.cpp:3776
static VImage svgload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:3605
static VImage heifload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:1465
VImage Oklch2Oklab(VOption *options=nullptr) const
Definition vips-operators.cpp:198
VImage minpair(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2519
VImage prewitt(VOption *options=nullptr) const
Definition vips-operators.cpp:2882
VImage LCh2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:54
void heifsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1501
VImage atan2(std::vector< double > other, VOption *options=nullptr) const
Definition VImage8.h:1622
static VImage analyzeload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:332
VImage scRGB2BW(VOption *options=nullptr) const
Definition vips-operators.cpp:3302
VImage ifthenelse(double th, VImage el, VOption *options=nullptr) const
Definition VImage8.h:1667
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:755
VImage()
Definition VImage8.h:416
VImage buildlut(VOption *options=nullptr) const
Definition vips-operators.cpp:507
static VImage new_temp_file(const char *file_format=".v")
Definition VImage8.h:884
VImage labelregions(VOption *options=nullptr) const
Definition vips-operators.cpp:2015
VImage multiply(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2598
VImage fliphor(VOption *options=nullptr) const
Definition VImage8.h:1215
void write_to_file(const char *name, VOption *options=nullptr) const
Definition VImage.cpp:683
void set(const char *field, double value)
Definition VImage8.h:651
static VImage new_matrix(int width, int height)
Definition VImage.cpp:651
void draw_mask(double ink, VImage mask, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1798
static VImage dcrawload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition vips-operators.cpp:909
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:1160
void pngsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:2790
bool hist_ismonotonic(VOption *options=nullptr) const
Definition vips-operators.cpp:1602
VImage XYZ2CMYK(VOption *options=nullptr) const
Definition vips-operators.cpp:210
VImage complex(VipsOperationComplex cmplx, VOption *options=nullptr) const
Definition vips-operators.cpp:619
VImage freqmult(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:1256
VImage icc_import(VOption *options=nullptr) const
Definition vips-operators.cpp:1701
VImage rot270(VOption *options=nullptr) const
Definition VImage8.h:1251
void pngsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:2810
VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options=nullptr) const
Definition vips-operators.cpp:2546
VImage sharpen(VOption *options=nullptr) const
Definition vips-operators.cpp:3388
VImage maxpair(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:2464
static VImage new_from_source(VSource source, const char *option_string, VOption *options=nullptr)
Definition VImage.cpp:613
VImage mapim(VImage index, VOption *options=nullptr) const
Definition vips-operators.cpp:2122
VImage quadratic(VImage coeff, VOption *options=nullptr) const
Definition vips-operators.cpp:2932
VImage XYZ2Oklab(VOption *options=nullptr) const
Definition vips-operators.cpp:234
static void system(const char *cmd_format, VOption *options=nullptr)
Definition vips-operators.cpp:3641
VImage shrink(double hshrink, double vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3400
VImage composite(VImage other, VipsBlendMode mode, VOption *options=nullptr) const
Definition VImage.cpp:844
VImage convf(VImage mask, VOption *options=nullptr) const
Definition vips-operators.cpp:738
VImage profile(VImage *rows, VOption *options=nullptr) const
Definition vips-operators.cpp:2894
VImage extract_band(int band, VOption *options=nullptr) const
Definition vips-operators.cpp:1095
VImage bandbool(VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition vips-operators.cpp:380
VipsBandFormat format() const
Definition VImage8.h:462
VImage math2_const(VipsOperationMath2 math2, std::vector< double > c, VOption *options=nullptr) const
Definition vips-operators.cpp:2354
static VImage new_from_memory_copy(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition VImage8.h:958
VImage transpose3d(VOption *options=nullptr) const
Definition vips-operators.cpp:3799
VImage reducev(double vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3119
void dzsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1035
static VImage webpload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3939
VImage erode(VImage mask, VOption *options=nullptr) const
Definition VImage8.h:1274
VImage floor(VOption *options=nullptr) const
Definition VImage8.h:1293
VImage linear(double a, double b, VOption *options=nullptr) const
Definition VImage8.h:1137
VImage colourspace(VipsInterpretation space, VOption *options=nullptr) const
Definition vips-operators.cpp:593
VImage addalpha(VOption *options=nullptr) const
Definition vips-operators.cpp:307
VImage ifthenelse(VImage th, std::vector< double > el, VOption *options=nullptr) const
Definition VImage8.h:1644
void get_array_int(const char *field, int **out, int *n) const
Definition VImage8.h:724
VImage tan(VOption *options=nullptr) const
Definition VImage8.h:1419
VipsBlob * rawsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:3059
void jpegsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1943
VImage cosh(VOption *options=nullptr) const
Definition VImage8.h:1464
double countlines(VipsDirection direction, VOption *options=nullptr) const
Definition vips-operators.cpp:789
VImage icc_transform(const char *output_profile, VOption *options=nullptr) const
Definition vips-operators.cpp:1713
VImage ifthenelse(VImage th, double el, VOption *options=nullptr) const
Definition VImage8.h:1677
void inplace()
Definition VImage8.h:574
VImage rad2float(VOption *options=nullptr) const
Definition vips-operators.cpp:2945
static VImage sines(int width, int height, VOption *options=nullptr)
Definition vips-operators.cpp:3464
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:1217
VImage math(VipsOperationMath math, VOption *options=nullptr) const
Definition vips-operators.cpp:2327
VImage similarity(VOption *options=nullptr) const
Definition vips-operators.cpp:3452
VImage unpremultiply(VOption *options=nullptr) const
Definition vips-operators.cpp:3887
VImage maplut(VImage lut, VOption *options=nullptr) const
Definition vips-operators.cpp:2135
VipsBlob * gifsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1390
static VImage ppmload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2842
void jpegsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1916
void draw_rect(double ink, int left, int top, int width, int height, VOption *options=nullptr) const
Definition VImage8.h:1740
VImage Lab2LabS(VOption *options=nullptr) const
Definition vips-operators.cpp:90
VImage log10(VOption *options=nullptr) const
Definition VImage8.h:1518
VImage invert(VOption *options=nullptr) const
Definition vips-operators.cpp:1766
int xoffset() const
Definition VImage8.h:518
static VImage uhdrload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:3823
VImage rank(int width, int height, int index, VOption *options=nullptr) const
Definition vips-operators.cpp:3021
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:3036
void jpegsave_mime(VOption *options=nullptr) const
Definition vips-operators.cpp:1936
static VImage heifload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:1489
VImage XYZ2Lab(VOption *options=nullptr) const
Definition vips-operators.cpp:222
static VImage openslideload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:2667
void draw_point(double ink, int x, int y, VOption *options=nullptr) const
Definition VImage8.h:1753
VImage asinh(VOption *options=nullptr) const
Definition VImage8.h:1482
const void * data() const
Definition VImage8.h:587
double min(VOption *options=nullptr) const
Definition vips-operators.cpp:2507
VImage invertlut(VOption *options=nullptr) const
Definition vips-operators.cpp:1778
static VOption * option()
Definition VImage8.h:850
static VImage new_from_memory(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition VImage8.h:940
VImage measure(int h, int v, VOption *options=nullptr) const
Definition vips-operators.cpp:2477
void jxlsave(const char *filename, VOption *options=nullptr) const
Definition vips-operators.cpp:1987
VImage wop(double other, VOption *options=nullptr) const
Definition VImage8.h:1583
VImage round(VipsOperationRound round, VOption *options=nullptr) const
Definition vips-operators.cpp:3265
VImage Oklab2Oklch(VOption *options=nullptr) const
Definition vips-operators.cpp:174
std::vector< double > getpoint(int x, int y, VOption *options=nullptr) const
Definition vips-operators.cpp:1332
static VImage dcrawload(const char *filename, VOption *options=nullptr)
Definition vips-operators.cpp:897
VImage subtract(VImage right, VOption *options=nullptr) const
Definition vips-operators.cpp:3568
VImage scale(VOption *options=nullptr) const
Definition vips-operators.cpp:3338
VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options=nullptr) const
Definition vips-operators.cpp:632
VImage acosh(VOption *options=nullptr) const
Definition VImage8.h:1491
VipsBlob * dzsave_buffer(VOption *options=nullptr) const
Definition vips-operators.cpp:1043
VImage thumbnail_image(int width, VOption *options=nullptr) const
Definition vips-operators.cpp:3686
VImage shrinkv(int vshrink, VOption *options=nullptr) const
Definition vips-operators.cpp:3427
VImage conj(VOption *options=nullptr) const
Definition VImage8.h:1392
static VImage webpload_source(VSource source, VOption *options=nullptr)
Definition vips-operators.cpp:3963
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:1802
void heifsave_target(VTarget target, VOption *options=nullptr) const
Definition vips-operators.cpp:1521
VImage canny(VOption *options=nullptr) const
Definition vips-operators.cpp:543
VImage cast(VipsBandFormat format, VOption *options=nullptr) const
Definition vips-operators.cpp:568
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:446
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