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