vips-cpp  8.16
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 
2065  G_DEPRECATED_FOR(rawsave_target)
2066  void rawsave_fd(int fd, VOption *options = nullptr) const;
2067 
2068  /* Automatically generated members.
2069  *
2070  * Rebuild with:
2071  *
2072  * meson compile -Cbuild vips-operators-header
2073  *
2074  * Then delete from here to the end of the class and paste in
2075  * vips-operators.h. We could just #include "vips-operators.h", but
2076  * that confuses doxygen.
2077  */
2078 
2079  // headers for vips operations
2080  // this file is generated automatically, do not edit!
2081 
2087  VImage CMC2LCh(VOption *options = nullptr) const;
2088 
2094  VImage CMYK2XYZ(VOption *options = nullptr) const;
2095 
2101  VImage HSV2sRGB(VOption *options = nullptr) const;
2102 
2108  VImage LCh2CMC(VOption *options = nullptr) const;
2109 
2115  VImage LCh2Lab(VOption *options = nullptr) const;
2116 
2122  VImage Lab2LCh(VOption *options = nullptr) const;
2123 
2129  VImage Lab2LabQ(VOption *options = nullptr) const;
2130 
2136  VImage Lab2LabS(VOption *options = nullptr) const;
2137 
2147  VImage Lab2XYZ(VOption *options = nullptr) const;
2148 
2154  VImage LabQ2Lab(VOption *options = nullptr) const;
2155 
2161  VImage LabQ2LabS(VOption *options = nullptr) const;
2162 
2168  VImage LabQ2sRGB(VOption *options = nullptr) const;
2169 
2175  VImage LabS2Lab(VOption *options = nullptr) const;
2176 
2182  VImage LabS2LabQ(VOption *options = nullptr) const;
2183 
2189  VImage XYZ2CMYK(VOption *options = nullptr) const;
2190 
2200  VImage XYZ2Lab(VOption *options = nullptr) const;
2201 
2207  VImage XYZ2Yxy(VOption *options = nullptr) const;
2208 
2214  VImage XYZ2scRGB(VOption *options = nullptr) const;
2215 
2221  VImage Yxy2XYZ(VOption *options = nullptr) const;
2222 
2228  VImage abs(VOption *options = nullptr) const;
2229 
2236  VImage add(VImage right, VOption *options = nullptr) const;
2237 
2243  VImage addalpha(VOption *options = nullptr) const;
2244 
2263  VImage affine(std::vector<double> matrix, VOption *options = nullptr) const;
2264 
2278  static VImage analyzeload(const char *filename, VOption *options = nullptr);
2279 
2296  static VImage arrayjoin(std::vector<VImage> in, VOption *options = nullptr);
2297 
2303  VImage autorot(VOption *options = nullptr) const;
2304 
2310  double avg(VOption *options = nullptr) const;
2311 
2318  VImage bandbool(VipsOperationBoolean boolean, VOption *options = nullptr) const;
2319 
2329  VImage bandfold(VOption *options = nullptr) const;
2330 
2337  static VImage bandjoin(std::vector<VImage> in, VOption *options = nullptr);
2338 
2345  VImage bandjoin_const(std::vector<double> c, VOption *options = nullptr) const;
2346 
2352  VImage bandmean(VOption *options = nullptr) const;
2353 
2364  static VImage bandrank(std::vector<VImage> in, VOption *options = nullptr);
2365 
2375  VImage bandunfold(VOption *options = nullptr) const;
2376 
2388  static VImage black(int width, int height, VOption *options = nullptr);
2389 
2397  VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options = nullptr) const;
2398 
2406  VImage boolean_const(VipsOperationBoolean boolean, std::vector<double> c, VOption *options = nullptr) const;
2407 
2413  VImage buildlut(VOption *options = nullptr) const;
2414 
2420  VImage byteswap(VOption *options = nullptr) const;
2421 
2433  G_DEPRECATED
2434  VImage cache(VOption *options = nullptr) const;
2435 
2446  VImage canny(VOption *options = nullptr) const;
2447 
2454  VImage case_image(std::vector<VImage> cases, VOption *options = nullptr) const;
2455 
2466  VImage cast(VipsBandFormat format, VOption *options = nullptr) const;
2467 
2478  VImage clamp(VOption *options = nullptr) const;
2479 
2490  VImage colourspace(VipsInterpretation space, VOption *options = nullptr) const;
2491 
2507  VImage compass(VImage mask, VOption *options = nullptr) const;
2508 
2515  VImage complex(VipsOperationComplex cmplx, VOption *options = nullptr) const;
2516 
2524  VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options = nullptr) const;
2525 
2532  VImage complexform(VImage right, VOption *options = nullptr) const;
2533 
2540  VImage complexget(VipsOperationComplexget get, VOption *options = nullptr) const;
2541 
2556  static VImage composite(std::vector<VImage> in, std::vector<int> mode, VOption *options = nullptr);
2557 
2572  VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options = nullptr) const;
2573 
2586  VImage conv(VImage mask, VOption *options = nullptr) const;
2587 
2599  VImage conva(VImage mask, VOption *options = nullptr) const;
2600 
2611  VImage convasep(VImage mask, VOption *options = nullptr) const;
2612 
2619  VImage convf(VImage mask, VOption *options = nullptr) const;
2620 
2627  VImage convi(VImage mask, VOption *options = nullptr) const;
2628 
2641  VImage convsep(VImage mask, VOption *options = nullptr) const;
2642 
2661  VImage copy(VOption *options = nullptr) const;
2662 
2669  double countlines(VipsDirection direction, VOption *options = nullptr) const;
2670 
2680  VImage crop(int left, int top, int width, int height, VOption *options = nullptr) const;
2681 
2699  static VImage csvload(const char *filename, VOption *options = nullptr);
2700 
2718  static VImage csvload_source(VSource source, VOption *options = nullptr);
2719 
2733  void csvsave(const char *filename, VOption *options = nullptr) const;
2734 
2748  void csvsave_target(VTarget target, VOption *options = nullptr) const;
2749 
2756  VImage dE00(VImage right, VOption *options = nullptr) const;
2757 
2764  VImage dE76(VImage right, VOption *options = nullptr) const;
2765 
2772  VImage dECMC(VImage right, VOption *options = nullptr) const;
2773 
2779  double deviate(VOption *options = nullptr) const;
2780 
2787  VImage divide(VImage right, VOption *options = nullptr) const;
2788 
2801  void draw_circle(std::vector<double> ink, int cx, int cy, int radius, VOption *options = nullptr) const;
2802 
2815  void draw_flood(std::vector<double> ink, int x, int y, VOption *options = nullptr) const;
2816 
2828  void draw_image(VImage sub, int x, int y, VOption *options = nullptr) const;
2829 
2839  void draw_line(std::vector<double> ink, int x1, int y1, int x2, int y2, VOption *options = nullptr) const;
2840 
2849  void draw_mask(std::vector<double> ink, VImage mask, int x, int y, VOption *options = nullptr) const;
2850 
2864  void draw_rect(std::vector<double> ink, int left, int top, int width, int height, VOption *options = nullptr) const;
2865 
2874  void draw_smudge(int left, int top, int width, int height, VOption *options = nullptr) const;
2875 
2902  void dzsave(const char *filename, VOption *options = nullptr) const;
2903 
2930  VipsBlob *dzsave_buffer(VOption *options = nullptr) const;
2931 
2958  void dzsave_target(VTarget target, VOption *options = nullptr) const;
2959 
2974  VImage embed(int x, int y, int width, int height, VOption *options = nullptr) const;
2975 
2985  VImage extract_area(int left, int top, int width, int height, VOption *options = nullptr) const;
2986 
2997  VImage extract_band(int band, VOption *options = nullptr) const;
2998 
3011  static VImage eye(int width, int height, VOption *options = nullptr);
3012 
3018  VImage falsecolour(VOption *options = nullptr) const;
3019 
3026  VImage fastcor(VImage ref, VOption *options = nullptr) const;
3027 
3033  VImage fill_nearest(VOption *options = nullptr) const;
3034 
3049  int find_trim(int *top, int *width, int *height, VOption *options = nullptr) const;
3050 
3064  static VImage fitsload(const char *filename, VOption *options = nullptr);
3065 
3079  static VImage fitsload_source(VSource source, VOption *options = nullptr);
3080 
3093  void fitssave(const char *filename, VOption *options = nullptr) const;
3094 
3105  VImage flatten(VOption *options = nullptr) const;
3106 
3113  VImage flip(VipsDirection direction, VOption *options = nullptr) const;
3114 
3120  VImage float2rad(VOption *options = nullptr) const;
3121 
3130  static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options = nullptr);
3131 
3138  VImage freqmult(VImage mask, VOption *options = nullptr) const;
3139 
3145  VImage fwfft(VOption *options = nullptr) const;
3146 
3156  VImage gamma(VOption *options = nullptr) const;
3157 
3169  VImage gaussblur(double sigma, VOption *options = nullptr) const;
3170 
3183  static VImage gaussmat(double sigma, double min_ampl, VOption *options = nullptr);
3184 
3198  static VImage gaussnoise(int width, int height, VOption *options = nullptr);
3199 
3211  std::vector<double> getpoint(int x, int y, VOption *options = nullptr) const;
3212 
3228  static VImage gifload(const char *filename, VOption *options = nullptr);
3229 
3245  static VImage gifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3246 
3262  static VImage gifload_source(VSource source, VOption *options = nullptr);
3263 
3283  void gifsave(const char *filename, VOption *options = nullptr) const;
3284 
3304  VipsBlob *gifsave_buffer(VOption *options = nullptr) const;
3305 
3325  void gifsave_target(VTarget target, VOption *options = nullptr) const;
3326 
3337  VImage globalbalance(VOption *options = nullptr) const;
3338 
3352  VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options = nullptr) const;
3353 
3365  static VImage grey(int width, int height, VOption *options = nullptr);
3366 
3375  VImage grid(int tile_height, int across, int down, VOption *options = nullptr) const;
3376 
3394  static VImage heifload(const char *filename, VOption *options = nullptr);
3395 
3413  static VImage heifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3414 
3432  static VImage heifload_source(VSource source, VOption *options = nullptr);
3433 
3453  void heifsave(const char *filename, VOption *options = nullptr) const;
3454 
3474  VipsBlob *heifsave_buffer(VOption *options = nullptr) const;
3475 
3495  void heifsave_target(VTarget target, VOption *options = nullptr) const;
3496 
3502  VImage hist_cum(VOption *options = nullptr) const;
3503 
3509  double hist_entropy(VOption *options = nullptr) const;
3510 
3520  VImage hist_equal(VOption *options = nullptr) const;
3521 
3531  VImage hist_find(VOption *options = nullptr) const;
3532 
3543  VImage hist_find_indexed(VImage index, VOption *options = nullptr) const;
3544 
3554  VImage hist_find_ndim(VOption *options = nullptr) const;
3555 
3561  bool hist_ismonotonic(VOption *options = nullptr) const;
3562 
3574  VImage hist_local(int width, int height, VOption *options = nullptr) const;
3575 
3582  VImage hist_match(VImage ref, VOption *options = nullptr) const;
3583 
3589  VImage hist_norm(VOption *options = nullptr) const;
3590 
3596  VImage hist_plot(VOption *options = nullptr) const;
3597 
3609  VImage hough_circle(VOption *options = nullptr) const;
3610 
3621  VImage hough_line(VOption *options = nullptr) const;
3622 
3636  VImage icc_export(VOption *options = nullptr) const;
3637 
3651  VImage icc_import(VOption *options = nullptr) const;
3652 
3668  VImage icc_transform(const char *output_profile, VOption *options = nullptr) const;
3669 
3681  static VImage identity(VOption *options = nullptr);
3682 
3694  VImage ifthenelse(VImage in1, VImage in2, VOption *options = nullptr) const;
3695 
3709  VImage insert(VImage sub, int x, int y, VOption *options = nullptr) const;
3710 
3716  VImage invert(VOption *options = nullptr) const;
3717 
3727  VImage invertlut(VOption *options = nullptr) const;
3728 
3738  VImage invfft(VOption *options = nullptr) const;
3739 
3754  VImage join(VImage in2, VipsDirection direction, VOption *options = nullptr) const;
3755 
3770  static VImage jp2kload(const char *filename, VOption *options = nullptr);
3771 
3786  static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3787 
3802  static VImage jp2kload_source(VSource source, VOption *options = nullptr);
3803 
3821  void jp2ksave(const char *filename, VOption *options = nullptr) const;
3822 
3840  VipsBlob *jp2ksave_buffer(VOption *options = nullptr) const;
3841 
3859  void jp2ksave_target(VTarget target, VOption *options = nullptr) const;
3860 
3877  static VImage jpegload(const char *filename, VOption *options = nullptr);
3878 
3895  static VImage jpegload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3896 
3913  static VImage jpegload_source(VSource source, VOption *options = nullptr);
3914 
3936  void jpegsave(const char *filename, VOption *options = nullptr) const;
3937 
3959  VipsBlob *jpegsave_buffer(VOption *options = nullptr) const;
3960 
3981  void jpegsave_mime(VOption *options = nullptr) const;
3982 
4004  void jpegsave_target(VTarget target, VOption *options = nullptr) const;
4005 
4021  static VImage jxlload(const char *filename, VOption *options = nullptr);
4022 
4038  static VImage jxlload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4039 
4055  static VImage jxlload_source(VSource source, VOption *options = nullptr);
4056 
4074  void jxlsave(const char *filename, VOption *options = nullptr) const;
4075 
4093  VipsBlob *jxlsave_buffer(VOption *options = nullptr) const;
4094 
4112  void jxlsave_target(VTarget target, VOption *options = nullptr) const;
4113 
4119  VImage labelregions(VOption *options = nullptr) const;
4120 
4132  VImage linear(std::vector<double> a, std::vector<double> b, VOption *options = nullptr) const;
4133 
4146  VImage linecache(VOption *options = nullptr) const;
4147 
4160  static VImage logmat(double sigma, double min_ampl, VOption *options = nullptr);
4161 
4178  static VImage magickload(const char *filename, VOption *options = nullptr);
4179 
4196  static VImage magickload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4197 
4215  void magicksave(const char *filename, VOption *options = nullptr) const;
4216 
4234  VipsBlob *magicksave_buffer(VOption *options = nullptr) const;
4235 
4249  VImage mapim(VImage index, VOption *options = nullptr) const;
4250 
4261  VImage maplut(VImage lut, VOption *options = nullptr) const;
4262 
4280  static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4281 
4301  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);
4302 
4321  static VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4322 
4338  static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options = nullptr);
4339 
4356  static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4357 
4376  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);
4377 
4395  static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4396 
4412  static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options = nullptr);
4413 
4431  static VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = nullptr);
4432 
4449  static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options = nullptr);
4450 
4472  VImage match(VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = nullptr) const;
4473 
4480  VImage math(VipsOperationMath math, VOption *options = nullptr) const;
4481 
4489  VImage math2(VImage right, VipsOperationMath2 math2, VOption *options = nullptr) const;
4490 
4498  VImage math2_const(VipsOperationMath2 math2, std::vector<double> c, VOption *options = nullptr) const;
4499 
4513  static VImage matload(const char *filename, VOption *options = nullptr);
4514 
4520  VImage matrixinvert(VOption *options = nullptr) const;
4521 
4535  static VImage matrixload(const char *filename, VOption *options = nullptr);
4536 
4550  static VImage matrixload_source(VSource source, VOption *options = nullptr);
4551 
4563  void matrixprint(VOption *options = nullptr) const;
4564 
4577  void matrixsave(const char *filename, VOption *options = nullptr) const;
4578 
4591  void matrixsave_target(VTarget target, VOption *options = nullptr) const;
4592 
4602  double max(VOption *options = nullptr) const;
4603 
4610  VImage maxpair(VImage right, VOption *options = nullptr) const;
4611 
4626  VImage measure(int h, int v, VOption *options = nullptr) const;
4627 
4641  VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options = nullptr) const;
4642 
4652  double min(VOption *options = nullptr) const;
4653 
4660  VImage minpair(VImage right, VOption *options = nullptr) const;
4661 
4669  VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options = nullptr) const;
4670 
4689  VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = nullptr) const;
4690 
4714  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;
4715 
4725  VImage msb(VOption *options = nullptr) const;
4726 
4733  VImage multiply(VImage right, VOption *options = nullptr) const;
4734 
4748  static VImage niftiload(const char *filename, VOption *options = nullptr);
4749 
4763  static VImage niftiload_source(VSource source, VOption *options = nullptr);
4764 
4777  void niftisave(const char *filename, VOption *options = nullptr) const;
4778 
4792  static VImage openexrload(const char *filename, VOption *options = nullptr);
4793 
4812  static VImage openslideload(const char *filename, VOption *options = nullptr);
4813 
4832  static VImage openslideload_source(VSource source, VOption *options = nullptr);
4833 
4853  static VImage pdfload(const char *filename, VOption *options = nullptr);
4854 
4874  static VImage pdfload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4875 
4895  static VImage pdfload_source(VSource source, VOption *options = nullptr);
4896 
4903  int percent(double percent, VOption *options = nullptr) const;
4904 
4918  static VImage perlin(int width, int height, VOption *options = nullptr);
4919 
4926  VImage phasecor(VImage in2, VOption *options = nullptr) const;
4927 
4942  static VImage pngload(const char *filename, VOption *options = nullptr);
4943 
4958  static VImage pngload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4959 
4974  static VImage pngload_source(VSource source, VOption *options = nullptr);
4975 
4996  void pngsave(const char *filename, VOption *options = nullptr) const;
4997 
5018  VipsBlob *pngsave_buffer(VOption *options = nullptr) const;
5019 
5040  void pngsave_target(VTarget target, VOption *options = nullptr) const;
5041 
5055  static VImage ppmload(const char *filename, VOption *options = nullptr);
5056 
5070  static VImage ppmload_source(VSource source, VOption *options = nullptr);
5071 
5087  void ppmsave(const char *filename, VOption *options = nullptr) const;
5088 
5104  void ppmsave_target(VTarget target, VOption *options = nullptr) const;
5105 
5115  VImage premultiply(VOption *options = nullptr) const;
5116 
5122  VImage prewitt(VOption *options = nullptr) const;
5123 
5130  VImage profile(VImage *rows, VOption *options = nullptr) const;
5131 
5138  static VipsBlob *profile_load(const char *name, VOption *options = nullptr);
5139 
5146  VImage project(VImage *rows, VOption *options = nullptr) const;
5147 
5158  VImage quadratic(VImage coeff, VOption *options = nullptr) const;
5159 
5165  VImage rad2float(VOption *options = nullptr) const;
5166 
5180  static VImage radload(const char *filename, VOption *options = nullptr);
5181 
5195  static VImage radload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5196 
5210  static VImage radload_source(VSource source, VOption *options = nullptr);
5211 
5224  void radsave(const char *filename, VOption *options = nullptr) const;
5225 
5238  VipsBlob *radsave_buffer(VOption *options = nullptr) const;
5239 
5252  void radsave_target(VTarget target, VOption *options = nullptr) const;
5253 
5262  VImage rank(int width, int height, int index, VOption *options = nullptr) const;
5263 
5283  static VImage rawload(const char *filename, int width, int height, int bands, VOption *options = nullptr);
5284 
5297  void rawsave(const char *filename, VOption *options = nullptr) const;
5298 
5311  VipsBlob *rawsave_buffer(VOption *options = nullptr) const;
5312 
5325  void rawsave_target(VTarget target, VOption *options = nullptr) const;
5326 
5333  VImage recomb(VImage m, VOption *options = nullptr) const;
5334 
5347  VImage reduce(double hshrink, double vshrink, VOption *options = nullptr) const;
5348 
5360  VImage reduceh(double hshrink, VOption *options = nullptr) const;
5361 
5373  VImage reducev(double vshrink, VOption *options = nullptr) const;
5374 
5382  VImage relational(VImage right, VipsOperationRelational relational, VOption *options = nullptr) const;
5383 
5391  VImage relational_const(VipsOperationRelational relational, std::vector<double> c, VOption *options = nullptr) const;
5392 
5399  VImage remainder(VImage right, VOption *options = nullptr) const;
5400 
5407  VImage remainder_const(std::vector<double> c, VOption *options = nullptr) const;
5408 
5416  VImage replicate(int across, int down, VOption *options = nullptr) const;
5417 
5430  VImage resize(double scale, VOption *options = nullptr) const;
5431 
5438  VImage rot(VipsAngle angle, VOption *options = nullptr) const;
5439 
5449  VImage rot45(VOption *options = nullptr) const;
5450 
5466  VImage rotate(double angle, VOption *options = nullptr) const;
5467 
5474  VImage round(VipsOperationRound round, VOption *options = nullptr) const;
5475 
5481  VImage sRGB2HSV(VOption *options = nullptr) const;
5482 
5488  VImage sRGB2scRGB(VOption *options = nullptr) const;
5489 
5499  VImage scRGB2BW(VOption *options = nullptr) const;
5500 
5506  VImage scRGB2XYZ(VOption *options = nullptr) const;
5507 
5517  VImage scRGB2sRGB(VOption *options = nullptr) const;
5518 
5529  VImage scale(VOption *options = nullptr) const;
5530 
5536  VImage scharr(VOption *options = nullptr) const;
5537 
5553  static VImage sdf(int width, int height, VipsSdfShape shape, VOption *options = nullptr);
5554 
5564  VImage sequential(VOption *options = nullptr) const;
5565 
5580  VImage sharpen(VOption *options = nullptr) const;
5581 
5593  VImage shrink(double hshrink, double vshrink, VOption *options = nullptr) const;
5594 
5605  VImage shrinkh(int hshrink, VOption *options = nullptr) const;
5606 
5617  VImage shrinkv(int vshrink, VOption *options = nullptr) const;
5618 
5624  VImage sign(VOption *options = nullptr) const;
5625 
5642  VImage similarity(VOption *options = nullptr) const;
5643 
5657  static VImage sines(int width, int height, VOption *options = nullptr);
5658 
5671  VImage smartcrop(int width, int height, VOption *options = nullptr) const;
5672 
5678  VImage sobel(VOption *options = nullptr) const;
5679 
5686  VImage spcor(VImage ref, VOption *options = nullptr) const;
5687 
5693  VImage spectrum(VOption *options = nullptr) const;
5694 
5700  VImage stats(VOption *options = nullptr) const;
5701 
5716  VImage stdif(int width, int height, VOption *options = nullptr) const;
5717 
5729  VImage subsample(int xfac, int yfac, VOption *options = nullptr) const;
5730 
5737  VImage subtract(VImage right, VOption *options = nullptr) const;
5738 
5745  static VImage sum(std::vector<VImage> in, VOption *options = nullptr);
5746 
5763  static VImage svgload(const char *filename, VOption *options = nullptr);
5764 
5781  static VImage svgload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5782 
5799  static VImage svgload_source(VSource source, VOption *options = nullptr);
5800 
5807  static VImage switch_image(std::vector<VImage> tests, VOption *options = nullptr);
5808 
5820  static void system(const char *cmd_format, VOption *options = nullptr);
5821 
5841  static VImage text(const char *text, VOption *options = nullptr);
5842 
5862  static VImage thumbnail(const char *filename, int width, VOption *options = nullptr);
5863 
5884  static VImage thumbnail_buffer(VipsBlob *buffer, int width, VOption *options = nullptr);
5885 
5904  VImage thumbnail_image(int width, VOption *options = nullptr) const;
5905 
5926  static VImage thumbnail_source(VSource source, int width, VOption *options = nullptr);
5927 
5945  static VImage tiffload(const char *filename, VOption *options = nullptr);
5946 
5964  static VImage tiffload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5965 
5983  static VImage tiffload_source(VSource source, VOption *options = nullptr);
5984 
6017  void tiffsave(const char *filename, VOption *options = nullptr) const;
6018 
6051  VipsBlob *tiffsave_buffer(VOption *options = nullptr) const;
6052 
6085  void tiffsave_target(VTarget target, VOption *options = nullptr) const;
6086 
6101  VImage tilecache(VOption *options = nullptr) const;
6102 
6121  static VImage tonelut(VOption *options = nullptr);
6122 
6132  VImage transpose3d(VOption *options = nullptr) const;
6133 
6144  VImage unpremultiply(VOption *options = nullptr) const;
6145 
6159  static VImage vipsload(const char *filename, VOption *options = nullptr);
6160 
6174  static VImage vipsload_source(VSource source, VOption *options = nullptr);
6175 
6188  void vipssave(const char *filename, VOption *options = nullptr) const;
6189 
6202  void vipssave_target(VTarget target, VOption *options = nullptr) const;
6203 
6220  static VImage webpload(const char *filename, VOption *options = nullptr);
6221 
6238  static VImage webpload_buffer(VipsBlob *buffer, VOption *options = nullptr);
6239 
6256  static VImage webpload_source(VSource source, VOption *options = nullptr);
6257 
6284  void webpsave(const char *filename, VOption *options = nullptr) const;
6285 
6312  VipsBlob *webpsave_buffer(VOption *options = nullptr) const;
6313 
6339  void webpsave_mime(VOption *options = nullptr) const;
6340 
6367  void webpsave_target(VTarget target, VOption *options = nullptr) const;
6368 
6381  static VImage worley(int width, int height, VOption *options = nullptr);
6382 
6393  VImage wrap(VOption *options = nullptr) const;
6394 
6408  static VImage xyz(int width, int height, VOption *options = nullptr);
6409 
6421  static VImage zone(int width, int height, VOption *options = nullptr);
6422 
6430  VImage zoom(int xfac, int yfac, VOption *options = nullptr) const;
6431 };
6432 
6433 VIPS_NAMESPACE_END
6434 
6435 #endif /*VIPS_VIMAGE_H*/
Definition: VError8.h:45
Definition: VImage8.h:398
VImage LabQ2sRGB(VOption *options=nullptr) const
Definition: vips-operators.cpp:138
VImage hist_norm(VOption *options=nullptr) const
Definition: vips-operators.cpp:1557
VImage rint(VOption *options=nullptr) const
Definition: VImage8.h:1293
VImage fastcor(VImage ref, VOption *options=nullptr) const
Definition: vips-operators.cpp:1049
VImage scRGB2sRGB(VOption *options=nullptr) const
Definition: vips-operators.cpp:3191
void niftisave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2526
void set(const char *field, double *value, int n)
Definition: VImage8.h:621
VImage flatten(VOption *options=nullptr) const
Definition: vips-operators.cpp:1121
VImage convi(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:703
double xres() const
Definition: VImage8.h:500
static VImage bandrank(std::vector< VImage > in, VOption *options=nullptr)
Definition: vips-operators.cpp:394
VImage sign(VOption *options=nullptr) const
Definition: vips-operators.cpp:3305
VImage stdif(int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:3405
static VImage svgload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:3482
static VImage switch_image(std::vector< VImage > tests, VOption *options=nullptr)
Definition: vips-operators.cpp:3494
VImage conv(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:651
static VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=nullptr)
Definition: vips-operators.cpp:2086
VImage atan2(VImage other, VOption *options=nullptr) const
Definition: VImage8.h:1585
static VImage gifload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1286
int get_int(const char *field) const
Definition: VImage8.h:689
static VImage radload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2836
VipsBlob * tiffsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:3621
static VImage zone(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3837
void set(const char *field, int *value, int n)
Definition: VImage8.h:598
static VImage new_matrixv(int width, int height,...)
Definition: VImage.cpp:662
void set(const char *field, std::vector< int > value)
Definition: VImage8.h:609
static VImage jp2kload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1756
void draw_point(std::vector< double > ink, int x, int y, VOption *options=nullptr) const
Definition: VImage8.h:1748
VipsBlob * pngsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:2689
double deviate(VOption *options=nullptr) const
Definition: vips-operators.cpp:849
VImage fill_nearest(VOption *options=nullptr) const
Definition: vips-operators.cpp:1062
void rawsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2950
VImage wop(VImage other, VOption *options=nullptr) const
Definition: VImage8.h:1556
void rawsave_fd(int fd, VOption *options=nullptr) const
Definition: VImage.cpp:1598
VImage msb(VOption *options=nullptr) const
Definition: vips-operators.cpp:2477
VImage hough_circle(VOption *options=nullptr) const
Definition: vips-operators.cpp:1581
static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options=nullptr)
Definition: vips-operators.cpp:2195
static VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options=nullptr)
Definition: vips-operators.cpp:2179
VImage subsample(int xfac, int yfac, VOption *options=nullptr) const
Definition: vips-operators.cpp:3419
VImage matrixinvert(VOption *options=nullptr) const
Definition: vips-operators.cpp:2284
VImage divide(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:861
VImage gaussblur(double sigma, VOption *options=nullptr) const
Definition: vips-operators.cpp:1209
VImage extract_area(int left, int top, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:995
VImage replicate(int across, int down, VOption *options=nullptr) const
Definition: vips-operators.cpp:3065
VImage exp10(VOption *options=nullptr) const
Definition: VImage8.h:1518
VImage exp(VOption *options=nullptr) const
Definition: VImage8.h:1509
VipsBlob * webpsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:3772
static VImage mask_gaussian_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options=nullptr)
Definition: vips-operators.cpp:2132
VImage copy(VOption *options=nullptr) const
Definition: vips-operators.cpp:729
static VImage fitsload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1089
G_DEPRECATED VImage cache(VOption *options=nullptr) const
Definition: vips-operators.cpp:483
static VImage webpload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:3740
static VImage vipsload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:3700
static VImage heifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1393
void fitssave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1113
VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options=nullptr) const
Definition: vips-operators.cpp:2423
static VImage matrixload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2308
static VImage gifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1274
void gifsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1318
VImage Yxy2XYZ(VOption *options=nullptr) const
Definition: vips-operators.cpp:222
static VImage csvload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:770
static VImage pngload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2645
VImage rot45(VOption *options=nullptr) const
Definition: vips-operators.cpp:3105
static VImage new_memory()
Definition: VImage8.h:856
static VImage jpegload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1808
void jp2ksave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1788
bool has_alpha() const
Definition: VImage8.h:536
static VImage new_from_file(const char *name, VOption *options=nullptr)
Definition: VImage.cpp:561
VImage bandjoin(double other, VOption *options=nullptr) const
Definition: VImage8.h:1162
void draw_smudge(int left, int top, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:940
void set(const char *field, int value)
Definition: VImage8.h:587
VImage conva(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:664
VImage gamma(VOption *options=nullptr) const
Definition: vips-operators.cpp:1197
VImage sin(VOption *options=nullptr) const
Definition: VImage8.h:1383
void csvsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:802
VImage hist_match(VImage ref, VOption *options=nullptr) const
Definition: vips-operators.cpp:1544
static VImage jpegload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1820
VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition: vips-operators.cpp:431
VImage byteswap(VOption *options=nullptr) const
Definition: vips-operators.cpp:471
VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options=nullptr) const
Definition: vips-operators.cpp:2382
static VImage jp2kload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1732
static VImage vipsload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3688
VImage project(VImage *rows, VOption *options=nullptr) const
Definition: vips-operators.cpp:2798
VImage recomb(VImage m, VOption *options=nullptr) const
Definition: vips-operators.cpp:2958
static VImage jxlload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1891
VImage write(VImage out) const
Definition: VImage.cpp:680
static VImage tiffload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:3589
VImage rotate(double angle, VOption *options=nullptr) const
Definition: vips-operators.cpp:3117
VImage LabS2Lab(VOption *options=nullptr) const
Definition: vips-operators.cpp:150
VImage bandeor(VOption *options=nullptr) const
Definition: VImage8.h:1329
std::vector< double > get_array_double(const char *field) const
Definition: VImage8.h:753
VImage bandjoin_const(std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:369
static VImage sum(std::vector< VImage > in, VOption *options=nullptr)
Definition: vips-operators.cpp:3446
VipsBlob * jxlsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1911
VImage wrap(VOption *options=nullptr) const
Definition: vips-operators.cpp:3812
static VImage niftiload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2514
VImage affine(std::vector< double > matrix, VOption *options=nullptr) const
Definition: vips-operators.cpp:271
VImage dE76(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:823
static VImage tiffload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3577
VImage rot90(VOption *options=nullptr) const
Definition: VImage8.h:1215
void radsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2872
void jp2ksave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1768
VImage smartcrop(int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:3342
VImage new_from_image(double pixel) const
Definition: VImage8.h:1014
static VImage gaussnoise(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:1235
static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options=nullptr)
Definition: vips-operators.cpp:2165
VImage reduceh(double hshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:2985
VImage case_image(std::vector< VImage > cases, VOption *options=nullptr) const
Definition: vips-operators.cpp:507
static VImage pdfload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2570
static VImage fitsload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1101
VImage remainder_const(std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:3052
VImage atanh(VOption *options=nullptr) const
Definition: VImage8.h:1482
VImage median(int size=3, VOption *options=nullptr) const
Definition: VImage8.h:1266
void csvsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:794
static VImage pdfload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:2582
VImage bandor(VOption *options=nullptr) const
Definition: VImage8.h:1317
VImage convasep(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:677
VImage compass(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:558
static VImage svgload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3458
void magicksave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2006
VImage flipver(VOption *options=nullptr) const
Definition: VImage8.h:1206
VImage hist_local(int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:1530
const char * filename() const
Definition: VImage8.h:546
void webpsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:3764
static VImage jpegload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1796
static VImage logmat(double sigma, double min_ampl, VOption *options=nullptr)
Definition: vips-operators.cpp:1969
static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options=nullptr)
Definition: vips-operators.cpp:2052
std::complex< double > minpos(VOption *options=nullptr) const
Definition: VImage.cpp:858
VImage LabQ2Lab(VOption *options=nullptr) const
Definition: vips-operators.cpp:114
std::complex< double > maxpos(VOption *options=nullptr) const
Definition: VImage.cpp:871
VImage sobel(VOption *options=nullptr) const
Definition: vips-operators.cpp:3356
static VImage xyz(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3824
VipsCoding coding() const
Definition: VImage8.h:471
VImage remainder(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:3039
static VImage magickload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1994
VImage LCh2CMC(VOption *options=nullptr) const
Definition: vips-operators.cpp:42
VImage spcor(VImage ref, VOption *options=nullptr) const
Definition: vips-operators.cpp:3368
static VImage text(const char *text, VOption *options=nullptr)
Definition: vips-operators.cpp:3513
VImage hist_cum(VOption *options=nullptr) const
Definition: vips-operators.cpp:1445
VImage crop(int left, int top, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:754
void tiffsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:3633
VImage float2rad(VOption *options=nullptr) const
Definition: vips-operators.cpp:1146
VImage globalbalance(VOption *options=nullptr) const
Definition: vips-operators.cpp:1326
std::vector< VImage > bandsplit(VOption *options=nullptr) const
Definition: VImage.cpp:826
VImage atan2(double other, VOption *options=nullptr) const
Definition: VImage8.h:1594
VImage pow(double other, VOption *options=nullptr) const
Definition: VImage8.h:1536
double avg(VOption *options=nullptr) const
Definition: vips-operators.cpp:320
VImage sequential(VOption *options=nullptr) const
Definition: vips-operators.cpp:3241
VipsBlob * radsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:2880
static VImage matrixload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2296
VImage hist_find(VOption *options=nullptr) const
Definition: vips-operators.cpp:1481
void write_to_buffer(const char *suffix, void **buf, size_t *size, VOption *options=nullptr) const
Definition: VImage.cpp:708
void draw_image(VImage sub, int x, int y, VOption *options=nullptr) const
Definition: vips-operators.cpp:895
void webpsave_mime(VOption *options=nullptr) const
Definition: vips-operators.cpp:3784
static VImage pngload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:2657
VImage dE00(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:810
VImage rect(VOption *options=nullptr) const
Definition: VImage8.h:1365
VImage mosaic1(VImage sec, VipsDirection direction, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options=nullptr) const
Definition: vips-operators.cpp:2455
static void call(const char *operation_name, VOption *options=nullptr)
Definition: VImage.cpp:555
static VImage jxlload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1867
static VImage arrayjoin(std::vector< VImage > in, VOption *options=nullptr)
Definition: vips-operators.cpp:296
void matrixprint(VOption *options=nullptr) const
Definition: vips-operators.cpp:2320
VImage grid(int tile_height, int across, int down, VOption *options=nullptr) const
Definition: vips-operators.cpp:1366
void ppmsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2733
VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:1338
static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1744
VImage polar(VOption *options=nullptr) const
Definition: VImage8.h:1356
static VImage gaussmat(double sigma, double min_ampl, VOption *options=nullptr)
Definition: vips-operators.cpp:1222
int find_trim(int *top, int *width, int *height, VOption *options=nullptr) const
Definition: vips-operators.cpp:1074
VImage linecache(VOption *options=nullptr) const
Definition: vips-operators.cpp:1957
VImage bandjoin(std::vector< double > other, VOption *options=nullptr) const
Definition: VImage8.h:1172
static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options=nullptr)
Definition: vips-operators.cpp:2103
VImage fwfft(VOption *options=nullptr) const
Definition: vips-operators.cpp:1185
VImage autorot(VOption *options=nullptr) const
Definition: vips-operators.cpp:308
VImage phasecor(VImage in2, VOption *options=nullptr) const
Definition: vips-operators.cpp:2632
VImage ifthenelse(std::vector< double > th, VImage el, VOption *options=nullptr) const
Definition: VImage8.h:1615
void webpsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:3791
VImage resize(double scale, VOption *options=nullptr) const
Definition: vips-operators.cpp:3079
static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options=nullptr)
Definition: vips-operators.cpp:1158
static VImage gifload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1262
VImage XYZ2Yxy(VOption *options=nullptr) const
Definition: vips-operators.cpp:198
VImage XYZ2scRGB(VOption *options=nullptr) const
Definition: vips-operators.cpp:210
static VImage niftiload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2502
VImage complexget(VipsOperationComplexget get, VOption *options=nullptr) const
Definition: vips-operators.cpp:611
void matrixsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2327
VImage match(VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options=nullptr) const
Definition: vips-operators.cpp:2210
void dzsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:971
VImage pow(std::vector< double > other, VOption *options=nullptr) const
Definition: VImage8.h:1546
VImage bandunfold(VOption *options=nullptr) const
Definition: vips-operators.cpp:406
VImage reduce(double hshrink, double vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:2971
void set(const char *field, VipsCallbackFn free_fn, void *data, size_t length)
Definition: VImage8.h:666
VipsBlob * magicksave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:2014
VImage bandand(VOption *options=nullptr) const
Definition: VImage8.h:1305
void draw_line(double ink, int x1, int y1, int x2, int y2, VOption *options=nullptr) const
Definition: VImage8.h:1703
void vipssave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:3712
VImage hist_equal(VOption *options=nullptr) const
Definition: vips-operators.cpp:1469
VImage hist_find_ndim(VOption *options=nullptr) const
Definition: vips-operators.cpp:1506
VImage new_from_image(std::vector< double > pixel) const
Definition: VImage8.h:998
static VImage thumbnail_source(VSource source, int width, VOption *options=nullptr)
Definition: vips-operators.cpp:3564
static VipsBlob * profile_load(const char *name, VOption *options=nullptr)
Definition: vips-operators.cpp:2786
static VOption * option()
Definition: VImage8.h:832
static VImage openslideload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2546
VImage imag(VOption *options=nullptr) const
Definition: VImage8.h:1347
static VImage matload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2272
VImage add(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:246
static VImage new_from_memory_steal(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage.cpp:640
void rawsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2930
static VImage thumbnail(const char *filename, int width, VOption *options=nullptr)
Definition: vips-operators.cpp:3525
VipsBlob * heifsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1425
VipsBlob * jp2ksave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1776
static VImage pdfload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2594
static VImage eye(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:1024
VImage ifthenelse(std::vector< double > th, std::vector< double > el, VOption *options=nullptr) const
Definition: VImage8.h:1637
VImage HSV2sRGB(VOption *options=nullptr) const
Definition: vips-operators.cpp:30
void ppmsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2741
VImage hist_find_indexed(VImage index, VOption *options=nullptr) const
Definition: vips-operators.cpp:1493
static VImage radload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2860
static VImage jxlload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1879
VImage boolean_const(VipsOperationBoolean boolean, std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:445
double hist_entropy(VOption *options=nullptr) const
Definition: vips-operators.cpp:1457
VImage dECMC(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:836
VImage copy_memory() const
Definition: VImage8.h:1032
static VImage tonelut(VOption *options=nullptr)
Definition: vips-operators.cpp:3653
VImage wop(std::vector< double > other, VOption *options=nullptr) const
Definition: VImage8.h:1575
static VImage ppmload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2709
VImage insert(VImage sub, int x, int y, VOption *options=nullptr) const
Definition: vips-operators.cpp:1667
VImage relational(VImage right, VipsOperationRelational relational, VOption *options=nullptr) const
Definition: vips-operators.cpp:3011
void get_array_double(const char *field, double **out, int *n) const
Definition: VImage8.h:740
VImage sRGB2scRGB(VOption *options=nullptr) const
Definition: vips-operators.cpp:3155
int percent(double percent, VOption *options=nullptr) const
Definition: vips-operators.cpp:2606
VImage atan(VOption *options=nullptr) const
Definition: VImage8.h:1428
bool remove(const char *name) const
Definition: VImage8.h:823
VImage sinh(VOption *options=nullptr) const
Definition: VImage8.h:1437
VImage icc_export(VOption *options=nullptr) const
Definition: vips-operators.cpp:1605
VImage pow(VImage other, VOption *options=nullptr) const
Definition: VImage8.h:1527
VImage log(VOption *options=nullptr) const
Definition: VImage8.h:1491
static VImage new_from_buffer(const void *buf, size_t len, const char *option_string, VOption *options=nullptr)
Definition: VImage.cpp:584
static VImage tiffload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:3601
VImage clamp(VOption *options=nullptr) const
Definition: vips-operators.cpp:533
static VImage pngload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2669
void matrixsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2335
VImage asin(VOption *options=nullptr) const
Definition: VImage8.h:1410
VImage ceil(VOption *options=nullptr) const
Definition: VImage8.h:1284
static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options=nullptr)
Definition: vips-operators.cpp:2117
VImage scharr(VOption *options=nullptr) const
Definition: vips-operators.cpp:3215
VImage rot(VipsAngle angle, VOption *options=nullptr) const
Definition: vips-operators.cpp:3092
static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=nullptr)
Definition: vips-operators.cpp:2149
VImage bandjoin(VImage other, VOption *options=nullptr) const
Definition: VImage.cpp:838
VImage relational_const(VipsOperationRelational relational, std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:3025
static void call_option_string(const char *operation_name, const char *option_string, VOption *options=nullptr)
Definition: VImage.cpp:501
VImage convsep(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:716
void draw_flood(double ink, int x, int y, VOption *options=nullptr) const
Definition: VImage8.h:1766
VImage dilate(VImage mask, VOption *options=nullptr) const
Definition: VImage8.h:1244
void jxlsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1923
VImage hough_line(VOption *options=nullptr) const
Definition: vips-operators.cpp:1593
static VImage csvload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:782
VImage invfft(VOption *options=nullptr) const
Definition: vips-operators.cpp:1706
static VImage sdf(int width, int height, VipsSdfShape shape, VOption *options=nullptr)
Definition: vips-operators.cpp:3227
double yres() const
Definition: VImage8.h:509
static VImage grey(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:1353
void set(const char *field, std::vector< double > value)
Definition: VImage8.h:632
double max(VOption *options=nullptr) const
Definition: vips-operators.cpp:2343
static VImage thumbnail_buffer(void *buf, size_t len, int width, VOption *options=nullptr)
Definition: VImage.cpp:781
void vipssave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:3720
VImage scRGB2XYZ(VOption *options=nullptr) const
Definition: vips-operators.cpp:3179
VImage Lab2XYZ(VOption *options=nullptr) const
Definition: vips-operators.cpp:102
void radsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2892
static VImage radload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:2848
int yoffset() const
Definition: VImage8.h:527
VImage complexform(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:598
static VImage black(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:418
VImage falsecolour(VOption *options=nullptr) const
Definition: vips-operators.cpp:1037
VipsBlob * jpegsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1840
VipsInterpretation interpretation() const
Definition: VImage8.h:481
static VImage identity(VOption *options=nullptr)
Definition: vips-operators.cpp:1642
int height() const
Definition: VImage8.h:444
void set(const char *field, const char *value)
Definition: VImage8.h:653
void gifsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1298
VImage acos(VOption *options=nullptr) const
Definition: VImage8.h:1419
void draw_circle(double ink, int cx, int cy, int radius, VOption *options=nullptr) const
Definition: VImage8.h:1688
const void * get_blob(const char *field, size_t *length) const
Definition: VImage8.h:807
VImage math2(VImage right, VipsOperationMath2 math2, VOption *options=nullptr) const
Definition: vips-operators.cpp:2244
VImage spectrum(VOption *options=nullptr) const
Definition: vips-operators.cpp:3381
static VImage worley(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3799
VImage sRGB2HSV(VOption *options=nullptr) const
Definition: vips-operators.cpp:3143
VImage abs(VOption *options=nullptr) const
Definition: vips-operators.cpp:234
VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options=nullptr) const
Definition: vips-operators.cpp:637
GType get_typeof(const char *field) const
Definition: VImage8.h:678
VRegion region() const
Definition: VImage.cpp:798
VImage stats(VOption *options=nullptr) const
Definition: vips-operators.cpp:3393
VImage linear(std::vector< double > a, double b, VOption *options=nullptr) const
Definition: VImage8.h:1131
VImage bandmean(VOption *options=nullptr) const
Definition: vips-operators.cpp:382
VImage embed(int x, int y, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:979
static VImage mask_butterworth_band(int width, int height, double order, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options=nullptr)
Definition: vips-operators.cpp:2068
static VImage new_matrix(int width, int height, double *array, int size)
Definition: VImage8.h:975
VImage real(VOption *options=nullptr) const
Definition: VImage8.h:1338
VImage rot180(VOption *options=nullptr) const
Definition: VImage8.h:1224
static VImage magickload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1982
VipsInterpretation guess_interpretation() const
Definition: VImage8.h:491
double get_double(const char *field) const
Definition: VImage8.h:773
static VImage perlin(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:2619
VImage cos(VOption *options=nullptr) const
Definition: VImage8.h:1392
VImage Lab2LabQ(VOption *options=nullptr) const
Definition: vips-operators.cpp:78
void tiffsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:3613
static VImage openexrload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2534
VImage shrinkh(int hshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:3279
VImage hist_plot(VOption *options=nullptr) const
Definition: vips-operators.cpp:1569
VImage tanh(VOption *options=nullptr) const
Definition: VImage8.h:1455
VImage zoom(int xfac, int yfac, VOption *options=nullptr) const
Definition: vips-operators.cpp:3850
VImage bandfold(VOption *options=nullptr) const
Definition: vips-operators.cpp:345
VImage premultiply(VOption *options=nullptr) const
Definition: vips-operators.cpp:2749
int bands() const
Definition: VImage8.h:453
VImage ifthenelse(double th, double el, VOption *options=nullptr) const
Definition: VImage8.h:1669
VImage tilecache(VOption *options=nullptr) const
Definition: vips-operators.cpp:3641
static VImage svgload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:3470
static VImage heifload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1381
VImage minpair(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:2410
VImage prewitt(VOption *options=nullptr) const
Definition: vips-operators.cpp:2761
VImage LCh2Lab(VOption *options=nullptr) const
Definition: vips-operators.cpp:54
void heifsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1417
VImage atan2(std::vector< double > other, VOption *options=nullptr) const
Definition: VImage8.h:1604
static VImage analyzeload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:284
VImage scRGB2BW(VOption *options=nullptr) const
Definition: vips-operators.cpp:3167
VImage ifthenelse(double th, VImage el, VOption *options=nullptr) const
Definition: VImage8.h:1649
VImage LabS2LabQ(VOption *options=nullptr) const
Definition: vips-operators.cpp:162
void write_to_target(const char *suffix, VTarget target, VOption *options=nullptr) const
Definition: VImage.cpp:761
VImage()
Definition: VImage8.h:416
VImage buildlut(VOption *options=nullptr) const
Definition: vips-operators.cpp:459
static VImage new_temp_file(const char *file_format=".v")
Definition: VImage8.h:866
VImage labelregions(VOption *options=nullptr) const
Definition: vips-operators.cpp:1931
VImage multiply(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:2489
VImage fliphor(VOption *options=nullptr) const
Definition: VImage8.h:1197
void write_to_file(const char *name, VOption *options=nullptr) const
Definition: VImage.cpp:689
void * write_to_memory(size_t *size) const
Definition: VImage8.h:1084
void set(const char *field, double value)
Definition: VImage8.h:642
static VImage new_matrix(int width, int height)
Definition: VImage.cpp:656
void draw_mask(double ink, VImage mask, int x, int y, VOption *options=nullptr) const
Definition: VImage8.h:1780
VImage(VipsImage *image, VSteal steal=STEAL)
Definition: VImage8.h:408
VImage linear(double a, std::vector< double > b, VOption *options=nullptr) const
Definition: VImage8.h:1142
void pngsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2681
bool hist_ismonotonic(VOption *options=nullptr) const
Definition: vips-operators.cpp:1518
VImage XYZ2CMYK(VOption *options=nullptr) const
Definition: vips-operators.cpp:174
VImage complex(VipsOperationComplex cmplx, VOption *options=nullptr) const
Definition: vips-operators.cpp:571
VImage freqmult(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:1172
VImage icc_import(VOption *options=nullptr) const
Definition: vips-operators.cpp:1617
VImage rot270(VOption *options=nullptr) const
Definition: VImage8.h:1233
void pngsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2701
std::vector< int > get_array_int(const char *field) const
Definition: VImage8.h:719
VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options=nullptr) const
Definition: vips-operators.cpp:2437
VImage sharpen(VOption *options=nullptr) const
Definition: vips-operators.cpp:3253
VImage maxpair(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:2355
static VImage new_from_source(VSource source, const char *option_string, VOption *options=nullptr)
Definition: VImage.cpp:618
VImage mapim(VImage index, VOption *options=nullptr) const
Definition: vips-operators.cpp:2026
VImage quadratic(VImage coeff, VOption *options=nullptr) const
Definition: vips-operators.cpp:2811
static void system(const char *cmd_format, VOption *options=nullptr)
Definition: vips-operators.cpp:3506
VImage shrink(double hshrink, double vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:3265
VImage composite(VImage other, VipsBlendMode mode, VOption *options=nullptr) const
Definition: VImage.cpp:847
VImage convf(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:690
VImage profile(VImage *rows, VOption *options=nullptr) const
Definition: vips-operators.cpp:2773
VImage extract_band(int band, VOption *options=nullptr) const
Definition: vips-operators.cpp:1011
const void * data() const
Definition: VImage8.h:578
VImage bandbool(VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition: vips-operators.cpp:332
VipsBandFormat format() const
Definition: VImage8.h:462
VImage math2_const(VipsOperationMath2 math2, std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:2258
static VImage new_from_memory_copy(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage8.h:940
VImage transpose3d(VOption *options=nullptr) const
Definition: vips-operators.cpp:3664
VImage reducev(double vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:2998
void dzsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:951
static VImage webpload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3728
VImage erode(VImage mask, VOption *options=nullptr) const
Definition: VImage8.h:1256
VImage floor(VOption *options=nullptr) const
Definition: VImage8.h:1275
VImage linear(double a, double b, VOption *options=nullptr) const
Definition: VImage8.h:1119
VImage colourspace(VipsInterpretation space, VOption *options=nullptr) const
Definition: vips-operators.cpp:545
VImage addalpha(VOption *options=nullptr) const
Definition: vips-operators.cpp:259
VImage ifthenelse(VImage th, std::vector< double > el, VOption *options=nullptr) const
Definition: VImage8.h:1626
void get_array_int(const char *field, int **out, int *n) const
Definition: VImage8.h:706
VImage tan(VOption *options=nullptr) const
Definition: VImage8.h:1401
VipsBlob * rawsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:2938
void jpegsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1859
VImage cosh(VOption *options=nullptr) const
Definition: VImage8.h:1446
double countlines(VipsDirection direction, VOption *options=nullptr) const
Definition: vips-operators.cpp:741
VImage icc_transform(const char *output_profile, VOption *options=nullptr) const
Definition: vips-operators.cpp:1629
VImage ifthenelse(VImage th, double el, VOption *options=nullptr) const
Definition: VImage8.h:1659
void inplace()
Definition: VImage8.h:565
VImage rad2float(VOption *options=nullptr) const
Definition: vips-operators.cpp:2824
static VImage sines(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3329
const char * get_string(const char *field) const
Definition: VImage8.h:790
VImage Lab2LCh(VOption *options=nullptr) const
Definition: vips-operators.cpp:66
int width() const
Definition: VImage8.h:435
VImage flip(VipsDirection direction, VOption *options=nullptr) const
Definition: vips-operators.cpp:1133
VImage math(VipsOperationMath math, VOption *options=nullptr) const
Definition: vips-operators.cpp:2231
VImage similarity(VOption *options=nullptr) const
Definition: vips-operators.cpp:3317
VImage unpremultiply(VOption *options=nullptr) const
Definition: vips-operators.cpp:3676
VImage maplut(VImage lut, VOption *options=nullptr) const
Definition: vips-operators.cpp:2039
VipsBlob * gifsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1306
static VImage ppmload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2721
void jpegsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1832
void draw_rect(double ink, int left, int top, int width, int height, VOption *options=nullptr) const
Definition: VImage8.h:1722
VImage Lab2LabS(VOption *options=nullptr) const
Definition: vips-operators.cpp:90
VImage log10(VOption *options=nullptr) const
Definition: VImage8.h:1500
VImage invert(VOption *options=nullptr) const
Definition: vips-operators.cpp:1682
int xoffset() const
Definition: VImage8.h:518
VImage rank(int width, int height, int index, VOption *options=nullptr) const
Definition: vips-operators.cpp:2900
VImage CMC2LCh(VOption *options=nullptr) const
Definition: vips-operators.cpp:6
VImage LabQ2LabS(VOption *options=nullptr) const
Definition: vips-operators.cpp:126
static VImage rawload(const char *filename, int width, int height, int bands, VOption *options=nullptr)
Definition: vips-operators.cpp:2915
void jpegsave_mime(VOption *options=nullptr) const
Definition: vips-operators.cpp:1852
static VImage heifload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1405
VImage XYZ2Lab(VOption *options=nullptr) const
Definition: vips-operators.cpp:186
static VImage openslideload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2558
void draw_point(double ink, int x, int y, VOption *options=nullptr) const
Definition: VImage8.h:1735
VImage asinh(VOption *options=nullptr) const
Definition: VImage8.h:1464
double min(VOption *options=nullptr) const
Definition: vips-operators.cpp:2398
VImage invertlut(VOption *options=nullptr) const
Definition: vips-operators.cpp:1694
VipsImage * get_image() const
Definition: VImage8.h:426
static VImage new_from_memory(const void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage8.h:922
VImage measure(int h, int v, VOption *options=nullptr) const
Definition: vips-operators.cpp:2368
void jxlsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1903
VImage wop(double other, VOption *options=nullptr) const
Definition: VImage8.h:1565
VImage round(VipsOperationRound round, VOption *options=nullptr) const
Definition: vips-operators.cpp:3130
std::vector< double > getpoint(int x, int y, VOption *options=nullptr) const
Definition: vips-operators.cpp:1248
VImage subtract(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:3433
VImage scale(VOption *options=nullptr) const
Definition: vips-operators.cpp:3203
VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options=nullptr) const
Definition: vips-operators.cpp:584
VImage acosh(VOption *options=nullptr) const
Definition: VImage8.h:1473
VipsBlob * dzsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:959
VImage thumbnail_image(int width, VOption *options=nullptr) const
Definition: vips-operators.cpp:3551
VImage shrinkv(int vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:3292
VImage conj(VOption *options=nullptr) const
Definition: VImage8.h:1374
static VImage webpload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:3752
VImage CMYK2XYZ(VOption *options=nullptr) const
Definition: vips-operators.cpp:18
VImage join(VImage in2, VipsDirection direction, VOption *options=nullptr) const
Definition: vips-operators.cpp:1718
void heifsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1437
VImage canny(VOption *options=nullptr) const
Definition: vips-operators.cpp:495
VImage cast(VipsBandFormat format, VOption *options=nullptr) const
Definition: vips-operators.cpp:520
Definition: VInterpolate8.h:45
Definition: VImage8.h:67
VObject(VipsObject *new_vobject, VSteal steal=STEAL)
Definition: VImage8.h:79
VipsObject * get_object() const
Definition: VImage8.h:170
bool is_null() const
Definition: VImage8.h:182
Definition: VImage8.h:216
void get_operation(VipsOperation *operation)
Definition: VImage.cpp:447
VOption * set(const char *name, bool value)
Definition: VImage.cpp:122
void set_operation(VipsOperation *operation)
Definition: VImage.cpp:425
Definition: VRegion8.h:40
Definition: VConnection8.h:45
Definition: VConnection8.h:104