vips-cpp  8.18
libvips C++ binding
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 
41 VIPS_NAMESPACE_START
42 
43 /* Small utility things.
44  */
45 
46 VIPS_CPLUSPLUS_API std::vector<double> to_vectorv(int n, ...);
47 VIPS_CPLUSPLUS_API std::vector<double> to_vector(double value);
48 VIPS_CPLUSPLUS_API std::vector<double> to_vector(int n, double array[]);
49 VIPS_CPLUSPLUS_API std::vector<double> negate(std::vector<double> value);
50 VIPS_CPLUSPLUS_API std::vector<double> invert(std::vector<double> value);
51 
56 enum VSteal {
57  NOSTEAL = 0,
58  STEAL = 1
59 };
60 
67 class VObject {
68 private:
69  // can be NULL, see eg. VObject()
70  VipsObject *vobject;
71 
72 public:
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 *
170  get_object() const
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 
188 class VIPS_CPLUSPLUS_API VImage;
189 class VIPS_CPLUSPLUS_API VInterpolate;
190 class VIPS_CPLUSPLUS_API VRegion;
191 class VIPS_CPLUSPLUS_API VSource;
192 class VIPS_CPLUSPLUS_API VTarget;
193 class VIPS_CPLUSPLUS_API VOption;
194 
216 class VOption {
217 private:
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 
251 public:
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 
398 class VImage : public VObject {
399 public:
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
932  new_from_source(VSource source,
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,
946  width, height, bands, format)))
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,
964  width, height, bands, format)))
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
1050  copy_memory() const
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  {
1264  return morph(mask, VIPS_OPERATION_MORPHOLOGY_DILATE,
1265  options);
1266  }
1267 
1273  VImage
1274  erode(VImage mask, VOption *options = nullptr) const
1275  {
1276  return morph(mask, VIPS_OPERATION_MORPHOLOGY_ERODE,
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  {
1358  return complexget(VIPS_OPERATION_COMPLEXGET_REAL, options);
1359  }
1360 
1364  VImage
1365  imag(VOption *options = nullptr) const
1366  {
1367  return complexget(VIPS_OPERATION_COMPLEXGET_IMAG, options);
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  {
1556  return math2_const(VIPS_OPERATION_MATH2_POW,
1557  to_vector(other), options);
1558  }
1559 
1563  VImage
1564  pow(std::vector<double> other, VOption *options = nullptr) const
1565  {
1566  return math2_const(VIPS_OPERATION_MATH2_POW,
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  {
1585  return math2_const(VIPS_OPERATION_MATH2_WOP,
1586  to_vector(other), options);
1587  }
1588 
1592  VImage
1593  wop(std::vector<double> other, VOption *options = nullptr) const
1594  {
1595  return math2_const(VIPS_OPERATION_MATH2_WOP,
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  {
1614  return math2_const(VIPS_OPERATION_MATH2_ATAN2,
1615  to_vector(other), options);
1616  }
1617 
1621  VImage
1622  atan2(std::vector<double> other, VOption *options = nullptr) const
1623  {
1624  return math2_const(VIPS_OPERATION_MATH2_ATAN2,
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  {
1658  return ifthenelse(new_from_image(th), new_from_image(el),
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 
1832  friend VIPS_CPLUSPLUS_API VImage
1833  operator+(const VImage a, const VImage b);
1834  friend VIPS_CPLUSPLUS_API VImage
1835  operator+(const double a, const VImage b);
1836  friend VIPS_CPLUSPLUS_API VImage
1837  operator+(const VImage a, const double b);
1838  friend VIPS_CPLUSPLUS_API VImage
1839  operator+(const std::vector<double> a, const VImage b);
1840  friend VIPS_CPLUSPLUS_API VImage
1841  operator+(const VImage a, const std::vector<double> b);
1842 
1843  friend VIPS_CPLUSPLUS_API VImage &
1844  operator+=(VImage &a, const VImage b);
1845  friend VIPS_CPLUSPLUS_API VImage &
1846  operator+=(VImage &a, const double b);
1847  friend VIPS_CPLUSPLUS_API VImage &
1848  operator+=(VImage &a, const std::vector<double> b);
1849 
1850  friend VIPS_CPLUSPLUS_API VImage
1851  operator-(const VImage a, const VImage b);
1852  friend VIPS_CPLUSPLUS_API VImage
1853  operator-(const double a, const VImage b);
1854  friend VIPS_CPLUSPLUS_API VImage
1855  operator-(const VImage a, const double b);
1856  friend VIPS_CPLUSPLUS_API VImage
1857  operator-(const std::vector<double> a, const VImage b);
1858  friend VIPS_CPLUSPLUS_API VImage
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 
1868  friend VIPS_CPLUSPLUS_API VImage
1869  operator-(const VImage a);
1870 
1871  friend VIPS_CPLUSPLUS_API VImage
1872  operator*(const VImage a, const VImage b);
1873  friend VIPS_CPLUSPLUS_API VImage
1874  operator*(const double a, const VImage b);
1875  friend VIPS_CPLUSPLUS_API VImage
1876  operator*(const VImage a, const double b);
1877  friend VIPS_CPLUSPLUS_API VImage
1878  operator*(const std::vector<double> a, const VImage b);
1879  friend VIPS_CPLUSPLUS_API VImage
1880  operator*(const VImage a, const std::vector<double> b);
1881 
1882  friend VIPS_CPLUSPLUS_API VImage &
1883  operator*=(VImage &a, const VImage b);
1884  friend VIPS_CPLUSPLUS_API VImage &
1885  operator*=(VImage &a, const double b);
1886  friend VIPS_CPLUSPLUS_API VImage &
1887  operator*=(VImage &a, const std::vector<double> b);
1888 
1889  friend VIPS_CPLUSPLUS_API VImage
1890  operator/(const VImage a, const VImage b);
1891  friend VIPS_CPLUSPLUS_API VImage
1892  operator/(const double a, const VImage b);
1893  friend VIPS_CPLUSPLUS_API VImage
1894  operator/(const VImage a, const double b);
1895  friend VIPS_CPLUSPLUS_API VImage
1896  operator/(const std::vector<double> a, const VImage b);
1897  friend VIPS_CPLUSPLUS_API VImage
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 
1907  friend VIPS_CPLUSPLUS_API VImage
1908  operator%(const VImage a, const VImage b);
1909  friend VIPS_CPLUSPLUS_API VImage
1910  operator%(const VImage a, const double b);
1911  friend VIPS_CPLUSPLUS_API VImage
1912  operator%(const VImage a, const std::vector<double> b);
1913 
1914  friend VIPS_CPLUSPLUS_API VImage &
1915  operator%=(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 
1921  friend VIPS_CPLUSPLUS_API VImage
1922  operator<(const VImage a, const VImage b);
1923  friend VIPS_CPLUSPLUS_API VImage
1924  operator<(const double a, const VImage b);
1925  friend VIPS_CPLUSPLUS_API VImage
1926  operator<(const VImage a, const double b);
1927  friend VIPS_CPLUSPLUS_API VImage
1928  operator<(const std::vector<double> a, const VImage b);
1929  friend VIPS_CPLUSPLUS_API VImage
1930  operator<(const VImage a, const std::vector<double> b);
1931 
1932  friend VIPS_CPLUSPLUS_API VImage
1933  operator<=(const VImage a, const VImage b);
1934  friend VIPS_CPLUSPLUS_API VImage
1935  operator<=(const double a, const VImage b);
1936  friend VIPS_CPLUSPLUS_API VImage
1937  operator<=(const VImage a, const double b);
1938  friend VIPS_CPLUSPLUS_API VImage
1939  operator<=(const std::vector<double> a, const VImage b);
1940  friend VIPS_CPLUSPLUS_API VImage
1941  operator<=(const VImage a, const std::vector<double> b);
1942 
1943  friend VIPS_CPLUSPLUS_API VImage
1944  operator>(const VImage a, const VImage b);
1945  friend VIPS_CPLUSPLUS_API VImage
1946  operator>(const double a, const VImage b);
1947  friend VIPS_CPLUSPLUS_API VImage
1948  operator>(const VImage a, const double b);
1949  friend VIPS_CPLUSPLUS_API VImage
1950  operator>(const std::vector<double> a, const VImage b);
1951  friend VIPS_CPLUSPLUS_API VImage
1952  operator>(const VImage a, const std::vector<double> b);
1953 
1954  friend VIPS_CPLUSPLUS_API VImage
1955  operator>=(const VImage a, const VImage b);
1956  friend VIPS_CPLUSPLUS_API VImage
1957  operator>=(const double a, const VImage b);
1958  friend VIPS_CPLUSPLUS_API VImage
1959  operator>=(const VImage a, const double b);
1960  friend VIPS_CPLUSPLUS_API VImage
1961  operator>=(const std::vector<double> a, const VImage b);
1962  friend VIPS_CPLUSPLUS_API VImage
1963  operator>=(const VImage a, const std::vector<double> b);
1964 
1965  friend VIPS_CPLUSPLUS_API VImage
1966  operator==(const VImage a, const VImage b);
1967  friend VIPS_CPLUSPLUS_API VImage
1968  operator==(const double a, const VImage b);
1969  friend VIPS_CPLUSPLUS_API VImage
1970  operator==(const VImage a, const double b);
1971  friend VIPS_CPLUSPLUS_API VImage
1972  operator==(const std::vector<double> a, const VImage b);
1973  friend VIPS_CPLUSPLUS_API VImage
1974  operator==(const VImage a, const std::vector<double> b);
1975 
1976  friend VIPS_CPLUSPLUS_API VImage
1977  operator!=(const VImage a, const VImage b);
1978  friend VIPS_CPLUSPLUS_API VImage
1979  operator!=(const double a, const VImage b);
1980  friend VIPS_CPLUSPLUS_API VImage
1981  operator!=(const VImage a, const double b);
1982  friend VIPS_CPLUSPLUS_API VImage
1983  operator!=(const std::vector<double> a, const VImage b);
1984  friend VIPS_CPLUSPLUS_API VImage
1985  operator!=(const VImage a, const std::vector<double> b);
1986 
1987  friend VIPS_CPLUSPLUS_API VImage
1988  operator&(const VImage a, const VImage b);
1989  friend VIPS_CPLUSPLUS_API VImage
1990  operator&(const double a, const VImage b);
1991  friend VIPS_CPLUSPLUS_API VImage
1992  operator&(const VImage a, const double b);
1993  friend VIPS_CPLUSPLUS_API VImage
1994  operator&(const std::vector<double> a, const VImage b);
1995  friend VIPS_CPLUSPLUS_API VImage
1996  operator&(const VImage a, const std::vector<double> b);
1997 
1998  friend VIPS_CPLUSPLUS_API VImage &
1999  operator&=(VImage &a, const VImage b);
2000  friend VIPS_CPLUSPLUS_API VImage &
2001  operator&=(VImage &a, const double b);
2002  friend VIPS_CPLUSPLUS_API VImage &
2003  operator&=(VImage &a, const std::vector<double> b);
2004 
2005  friend VIPS_CPLUSPLUS_API VImage
2006  operator|(const VImage a, const VImage b);
2007  friend VIPS_CPLUSPLUS_API VImage
2008  operator|(const double a, const VImage b);
2009  friend VIPS_CPLUSPLUS_API VImage
2010  operator|(const VImage a, const double b);
2011  friend VIPS_CPLUSPLUS_API VImage
2012  operator|(const std::vector<double> a, const VImage b);
2013  friend VIPS_CPLUSPLUS_API VImage
2014  operator|(const VImage a, const std::vector<double> b);
2015 
2016  friend VIPS_CPLUSPLUS_API VImage &
2017  operator|=(VImage &a, const VImage b);
2018  friend VIPS_CPLUSPLUS_API VImage &
2019  operator|=(VImage &a, const double b);
2020  friend VIPS_CPLUSPLUS_API VImage &
2021  operator|=(VImage &a, const std::vector<double> b);
2022 
2023  friend VIPS_CPLUSPLUS_API VImage
2024  operator^(const VImage a, const VImage b);
2025  friend VIPS_CPLUSPLUS_API VImage
2026  operator^(const double a, const VImage b);
2027  friend VIPS_CPLUSPLUS_API VImage
2028  operator^(const VImage a, const double b);
2029  friend VIPS_CPLUSPLUS_API VImage
2030  operator^(const std::vector<double> a, const VImage b);
2031  friend VIPS_CPLUSPLUS_API VImage
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 
2041  friend VIPS_CPLUSPLUS_API VImage
2042  operator<<(const VImage a, const VImage b);
2043  friend VIPS_CPLUSPLUS_API VImage
2044  operator<<(const VImage a, const double b);
2045  friend VIPS_CPLUSPLUS_API VImage
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 
2055  friend VIPS_CPLUSPLUS_API VImage
2056  operator>>(const VImage a, const VImage b);
2057  friend VIPS_CPLUSPLUS_API VImage
2058  operator>>(const VImage a, const double b);
2059  friend VIPS_CPLUSPLUS_API VImage
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 
2484  G_DEPRECATED
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 
5519  VImage relational(VImage right, VipsOperationRelational relational, VOption *options = nullptr) const;
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 
6688 VIPS_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
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
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
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
std::vector< double > get_array_double(const char *field) const
Definition: VImage8.h:771
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
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
const char * filename() const
Definition: VImage8.h:546
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
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
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 VOption * option()
Definition: VImage8.h:850
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
const void * get_blob(const char *field, size_t *length) const
Definition: VImage8.h:825
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
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 * write_to_memory(size_t *size) const
Definition: VImage8.h:1102
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
std::vector< int > get_array_int(const char *field) const
Definition: VImage8.h:737
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
const void * data() const
Definition: VImage8.h:587
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
const char * get_string(const char *field) const
Definition: VImage8.h:808
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
double min(VOption *options=nullptr) const
Definition: vips-operators.cpp:2507
VImage invertlut(VOption *options=nullptr) const
Definition: vips-operators.cpp:1778
VipsImage * get_image() const
Definition: VImage8.h:426
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