vips-cpp  8.15
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(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(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(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  /* Automatically generated members.
2052  *
2053  * Rebuild with:
2054  *
2055  * meson compile -Cbuild vips-operators-header
2056  *
2057  * Then delete from here to the end of the class and paste in
2058  * vips-operators.h. We could just #include vips-operators.h, but
2059  * that confuses doxygen.
2060  */
2061 
2062  // headers for vips operations
2063  // this file is generated automatically, do not edit!
2064 
2070  VImage CMC2LCh(VOption *options = nullptr) const;
2071 
2077  VImage CMYK2XYZ(VOption *options = nullptr) const;
2078 
2084  VImage HSV2sRGB(VOption *options = nullptr) const;
2085 
2091  VImage LCh2CMC(VOption *options = nullptr) const;
2092 
2098  VImage LCh2Lab(VOption *options = nullptr) const;
2099 
2105  VImage Lab2LCh(VOption *options = nullptr) const;
2106 
2112  VImage Lab2LabQ(VOption *options = nullptr) const;
2113 
2119  VImage Lab2LabS(VOption *options = nullptr) const;
2120 
2130  VImage Lab2XYZ(VOption *options = nullptr) const;
2131 
2137  VImage LabQ2Lab(VOption *options = nullptr) const;
2138 
2144  VImage LabQ2LabS(VOption *options = nullptr) const;
2145 
2151  VImage LabQ2sRGB(VOption *options = nullptr) const;
2152 
2158  VImage LabS2Lab(VOption *options = nullptr) const;
2159 
2165  VImage LabS2LabQ(VOption *options = nullptr) const;
2166 
2172  VImage XYZ2CMYK(VOption *options = nullptr) const;
2173 
2183  VImage XYZ2Lab(VOption *options = nullptr) const;
2184 
2190  VImage XYZ2Yxy(VOption *options = nullptr) const;
2191 
2197  VImage XYZ2scRGB(VOption *options = nullptr) const;
2198 
2204  VImage Yxy2XYZ(VOption *options = nullptr) const;
2205 
2211  VImage abs(VOption *options = nullptr) const;
2212 
2219  VImage add(VImage right, VOption *options = nullptr) const;
2220 
2239  VImage affine(std::vector<double> matrix, VOption *options = nullptr) const;
2240 
2254  static VImage analyzeload(const char *filename, VOption *options = nullptr);
2255 
2272  static VImage arrayjoin(std::vector<VImage> in, VOption *options = nullptr);
2273 
2279  VImage autorot(VOption *options = nullptr) const;
2280 
2286  double avg(VOption *options = nullptr) const;
2287 
2294  VImage bandbool(VipsOperationBoolean boolean, VOption *options = nullptr) const;
2295 
2305  VImage bandfold(VOption *options = nullptr) const;
2306 
2313  static VImage bandjoin(std::vector<VImage> in, VOption *options = nullptr);
2314 
2321  VImage bandjoin_const(std::vector<double> c, VOption *options = nullptr) const;
2322 
2328  VImage bandmean(VOption *options = nullptr) const;
2329 
2340  static VImage bandrank(std::vector<VImage> in, VOption *options = nullptr);
2341 
2351  VImage bandunfold(VOption *options = nullptr) const;
2352 
2364  static VImage black(int width, int height, VOption *options = nullptr);
2365 
2373  VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options = nullptr) const;
2374 
2382  VImage boolean_const(VipsOperationBoolean boolean, std::vector<double> c, VOption *options = nullptr) const;
2383 
2389  VImage buildlut(VOption *options = nullptr) const;
2390 
2396  VImage byteswap(VOption *options = nullptr) const;
2397 
2409  VImage cache(VOption *options = nullptr) const;
2410 
2421  VImage canny(VOption *options = nullptr) const;
2422 
2429  VImage case_image(std::vector<VImage> cases, VOption *options = nullptr) const;
2430 
2441  VImage cast(VipsBandFormat format, VOption *options = nullptr) const;
2442 
2453  VImage colourspace(VipsInterpretation space, VOption *options = nullptr) const;
2454 
2470  VImage compass(VImage mask, VOption *options = nullptr) const;
2471 
2478  VImage complex(VipsOperationComplex cmplx, VOption *options = nullptr) const;
2479 
2487  VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options = nullptr) const;
2488 
2495  VImage complexform(VImage right, VOption *options = nullptr) const;
2496 
2503  VImage complexget(VipsOperationComplexget get, VOption *options = nullptr) const;
2504 
2519  static VImage composite(std::vector<VImage> in, std::vector<int> mode, VOption *options = nullptr);
2520 
2535  VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options = nullptr) const;
2536 
2549  VImage conv(VImage mask, VOption *options = nullptr) const;
2550 
2562  VImage conva(VImage mask, VOption *options = nullptr) const;
2563 
2574  VImage convasep(VImage mask, VOption *options = nullptr) const;
2575 
2582  VImage convf(VImage mask, VOption *options = nullptr) const;
2583 
2590  VImage convi(VImage mask, VOption *options = nullptr) const;
2591 
2604  VImage convsep(VImage mask, VOption *options = nullptr) const;
2605 
2624  VImage copy(VOption *options = nullptr) const;
2625 
2632  double countlines(VipsDirection direction, VOption *options = nullptr) const;
2633 
2643  VImage crop(int left, int top, int width, int height, VOption *options = nullptr) const;
2644 
2662  static VImage csvload(const char *filename, VOption *options = nullptr);
2663 
2681  static VImage csvload_source(VSource source, VOption *options = nullptr);
2682 
2696  void csvsave(const char *filename, VOption *options = nullptr) const;
2697 
2711  void csvsave_target(VTarget target, VOption *options = nullptr) const;
2712 
2719  VImage dE00(VImage right, VOption *options = nullptr) const;
2720 
2727  VImage dE76(VImage right, VOption *options = nullptr) const;
2728 
2735  VImage dECMC(VImage right, VOption *options = nullptr) const;
2736 
2742  double deviate(VOption *options = nullptr) const;
2743 
2750  VImage divide(VImage right, VOption *options = nullptr) const;
2751 
2764  void draw_circle(std::vector<double> ink, int cx, int cy, int radius, VOption *options = nullptr) const;
2765 
2778  void draw_flood(std::vector<double> ink, int x, int y, VOption *options = nullptr) const;
2779 
2791  void draw_image(VImage sub, int x, int y, VOption *options = nullptr) const;
2792 
2802  void draw_line(std::vector<double> ink, int x1, int y1, int x2, int y2, VOption *options = nullptr) const;
2803 
2812  void draw_mask(std::vector<double> ink, VImage mask, int x, int y, VOption *options = nullptr) const;
2813 
2827  void draw_rect(std::vector<double> ink, int left, int top, int width, int height, VOption *options = nullptr) const;
2828 
2837  void draw_smudge(int left, int top, int width, int height, VOption *options = nullptr) const;
2838 
2865  void dzsave(const char *filename, VOption *options = nullptr) const;
2866 
2893  VipsBlob *dzsave_buffer(VOption *options = nullptr) const;
2894 
2921  void dzsave_target(VTarget target, VOption *options = nullptr) const;
2922 
2937  VImage embed(int x, int y, int width, int height, VOption *options = nullptr) const;
2938 
2948  VImage extract_area(int left, int top, int width, int height, VOption *options = nullptr) const;
2949 
2960  VImage extract_band(int band, VOption *options = nullptr) const;
2961 
2974  static VImage eye(int width, int height, VOption *options = nullptr);
2975 
2981  VImage falsecolour(VOption *options = nullptr) const;
2982 
2989  VImage fastcor(VImage ref, VOption *options = nullptr) const;
2990 
2996  VImage fill_nearest(VOption *options = nullptr) const;
2997 
3012  int find_trim(int *top, int *width, int *height, VOption *options = nullptr) const;
3013 
3027  static VImage fitsload(const char *filename, VOption *options = nullptr);
3028 
3042  static VImage fitsload_source(VSource source, VOption *options = nullptr);
3043 
3056  void fitssave(const char *filename, VOption *options = nullptr) const;
3057 
3068  VImage flatten(VOption *options = nullptr) const;
3069 
3076  VImage flip(VipsDirection direction, VOption *options = nullptr) const;
3077 
3083  VImage float2rad(VOption *options = nullptr) const;
3084 
3093  static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options = nullptr);
3094 
3101  VImage freqmult(VImage mask, VOption *options = nullptr) const;
3102 
3108  VImage fwfft(VOption *options = nullptr) const;
3109 
3119  VImage gamma(VOption *options = nullptr) const;
3120 
3132  VImage gaussblur(double sigma, VOption *options = nullptr) const;
3133 
3146  static VImage gaussmat(double sigma, double min_ampl, VOption *options = nullptr);
3147 
3161  static VImage gaussnoise(int width, int height, VOption *options = nullptr);
3162 
3170  std::vector<double> getpoint(int x, int y, VOption *options = nullptr) const;
3171 
3187  static VImage gifload(const char *filename, VOption *options = nullptr);
3188 
3204  static VImage gifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3205 
3221  static VImage gifload_source(VSource source, VOption *options = nullptr);
3222 
3242  void gifsave(const char *filename, VOption *options = nullptr) const;
3243 
3263  VipsBlob *gifsave_buffer(VOption *options = nullptr) const;
3264 
3284  void gifsave_target(VTarget target, VOption *options = nullptr) const;
3285 
3296  VImage globalbalance(VOption *options = nullptr) const;
3297 
3311  VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options = nullptr) const;
3312 
3324  static VImage grey(int width, int height, VOption *options = nullptr);
3325 
3334  VImage grid(int tile_height, int across, int down, VOption *options = nullptr) const;
3335 
3353  static VImage heifload(const char *filename, VOption *options = nullptr);
3354 
3372  static VImage heifload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3373 
3391  static VImage heifload_source(VSource source, VOption *options = nullptr);
3392 
3412  void heifsave(const char *filename, VOption *options = nullptr) const;
3413 
3433  VipsBlob *heifsave_buffer(VOption *options = nullptr) const;
3434 
3454  void heifsave_target(VTarget target, VOption *options = nullptr) const;
3455 
3461  VImage hist_cum(VOption *options = nullptr) const;
3462 
3468  double hist_entropy(VOption *options = nullptr) const;
3469 
3479  VImage hist_equal(VOption *options = nullptr) const;
3480 
3490  VImage hist_find(VOption *options = nullptr) const;
3491 
3502  VImage hist_find_indexed(VImage index, VOption *options = nullptr) const;
3503 
3513  VImage hist_find_ndim(VOption *options = nullptr) const;
3514 
3520  bool hist_ismonotonic(VOption *options = nullptr) const;
3521 
3533  VImage hist_local(int width, int height, VOption *options = nullptr) const;
3534 
3541  VImage hist_match(VImage ref, VOption *options = nullptr) const;
3542 
3548  VImage hist_norm(VOption *options = nullptr) const;
3549 
3555  VImage hist_plot(VOption *options = nullptr) const;
3556 
3568  VImage hough_circle(VOption *options = nullptr) const;
3569 
3580  VImage hough_line(VOption *options = nullptr) const;
3581 
3595  VImage icc_export(VOption *options = nullptr) const;
3596 
3610  VImage icc_import(VOption *options = nullptr) const;
3611 
3627  VImage icc_transform(const char *output_profile, VOption *options = nullptr) const;
3628 
3640  static VImage identity(VOption *options = nullptr);
3641 
3653  VImage ifthenelse(VImage in1, VImage in2, VOption *options = nullptr) const;
3654 
3668  VImage insert(VImage sub, int x, int y, VOption *options = nullptr) const;
3669 
3675  VImage invert(VOption *options = nullptr) const;
3676 
3686  VImage invertlut(VOption *options = nullptr) const;
3687 
3697  VImage invfft(VOption *options = nullptr) const;
3698 
3713  VImage join(VImage in2, VipsDirection direction, VOption *options = nullptr) const;
3714 
3729  static VImage jp2kload(const char *filename, VOption *options = nullptr);
3730 
3745  static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3746 
3761  static VImage jp2kload_source(VSource source, VOption *options = nullptr);
3762 
3780  void jp2ksave(const char *filename, VOption *options = nullptr) const;
3781 
3799  VipsBlob *jp2ksave_buffer(VOption *options = nullptr) const;
3800 
3818  void jp2ksave_target(VTarget target, VOption *options = nullptr) const;
3819 
3836  static VImage jpegload(const char *filename, VOption *options = nullptr);
3837 
3854  static VImage jpegload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3855 
3872  static VImage jpegload_source(VSource source, VOption *options = nullptr);
3873 
3895  void jpegsave(const char *filename, VOption *options = nullptr) const;
3896 
3918  VipsBlob *jpegsave_buffer(VOption *options = nullptr) const;
3919 
3940  void jpegsave_mime(VOption *options = nullptr) const;
3941 
3963  void jpegsave_target(VTarget target, VOption *options = nullptr) const;
3964 
3978  static VImage jxlload(const char *filename, VOption *options = nullptr);
3979 
3993  static VImage jxlload_buffer(VipsBlob *buffer, VOption *options = nullptr);
3994 
4008  static VImage jxlload_source(VSource source, VOption *options = nullptr);
4009 
4027  void jxlsave(const char *filename, VOption *options = nullptr) const;
4028 
4046  VipsBlob *jxlsave_buffer(VOption *options = nullptr) const;
4047 
4065  void jxlsave_target(VTarget target, VOption *options = nullptr) const;
4066 
4072  VImage labelregions(VOption *options = nullptr) const;
4073 
4085  VImage linear(std::vector<double> a, std::vector<double> b, VOption *options = nullptr) const;
4086 
4099  VImage linecache(VOption *options = nullptr) const;
4100 
4113  static VImage logmat(double sigma, double min_ampl, VOption *options = nullptr);
4114 
4131  static VImage magickload(const char *filename, VOption *options = nullptr);
4132 
4149  static VImage magickload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4150 
4168  void magicksave(const char *filename, VOption *options = nullptr) const;
4169 
4187  VipsBlob *magicksave_buffer(VOption *options = nullptr) const;
4188 
4202  VImage mapim(VImage index, VOption *options = nullptr) const;
4203 
4214  VImage maplut(VImage lut, VOption *options = nullptr) const;
4215 
4233  static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4234 
4254  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);
4255 
4274  static VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4275 
4291  static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options = nullptr);
4292 
4309  static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = nullptr);
4310 
4329  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);
4330 
4348  static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = nullptr);
4349 
4365  static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options = nullptr);
4366 
4384  static VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = nullptr);
4385 
4402  static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options = nullptr);
4403 
4425  VImage match(VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = nullptr) const;
4426 
4433  VImage math(VipsOperationMath math, VOption *options = nullptr) const;
4434 
4442  VImage math2(VImage right, VipsOperationMath2 math2, VOption *options = nullptr) const;
4443 
4451  VImage math2_const(VipsOperationMath2 math2, std::vector<double> c, VOption *options = nullptr) const;
4452 
4466  static VImage matload(const char *filename, VOption *options = nullptr);
4467 
4473  VImage matrixinvert(VOption *options = nullptr) const;
4474 
4488  static VImage matrixload(const char *filename, VOption *options = nullptr);
4489 
4503  static VImage matrixload_source(VSource source, VOption *options = nullptr);
4504 
4516  void matrixprint(VOption *options = nullptr) const;
4517 
4530  void matrixsave(const char *filename, VOption *options = nullptr) const;
4531 
4544  void matrixsave_target(VTarget target, VOption *options = nullptr) const;
4545 
4555  double max(VOption *options = nullptr) const;
4556 
4571  VImage measure(int h, int v, VOption *options = nullptr) const;
4572 
4586  VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options = nullptr) const;
4587 
4597  double min(VOption *options = nullptr) const;
4598 
4606  VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options = nullptr) const;
4607 
4626  VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = nullptr) const;
4627 
4651  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;
4652 
4662  VImage msb(VOption *options = nullptr) const;
4663 
4670  VImage multiply(VImage right, VOption *options = nullptr) const;
4671 
4685  static VImage niftiload(const char *filename, VOption *options = nullptr);
4686 
4700  static VImage niftiload_source(VSource source, VOption *options = nullptr);
4701 
4714  void niftisave(const char *filename, VOption *options = nullptr) const;
4715 
4729  static VImage openexrload(const char *filename, VOption *options = nullptr);
4730 
4749  static VImage openslideload(const char *filename, VOption *options = nullptr);
4750 
4769  static VImage openslideload_source(VSource source, VOption *options = nullptr);
4770 
4790  static VImage pdfload(const char *filename, VOption *options = nullptr);
4791 
4811  static VImage pdfload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4812 
4832  static VImage pdfload_source(VSource source, VOption *options = nullptr);
4833 
4840  int percent(double percent, VOption *options = nullptr) const;
4841 
4855  static VImage perlin(int width, int height, VOption *options = nullptr);
4856 
4863  VImage phasecor(VImage in2, VOption *options = nullptr) const;
4864 
4879  static VImage pngload(const char *filename, VOption *options = nullptr);
4880 
4895  static VImage pngload_buffer(VipsBlob *buffer, VOption *options = nullptr);
4896 
4911  static VImage pngload_source(VSource source, VOption *options = nullptr);
4912 
4933  void pngsave(const char *filename, VOption *options = nullptr) const;
4934 
4955  VipsBlob *pngsave_buffer(VOption *options = nullptr) const;
4956 
4977  void pngsave_target(VTarget target, VOption *options = nullptr) const;
4978 
4992  static VImage ppmload(const char *filename, VOption *options = nullptr);
4993 
5007  static VImage ppmload_source(VSource source, VOption *options = nullptr);
5008 
5024  void ppmsave(const char *filename, VOption *options = nullptr) const;
5025 
5041  void ppmsave_target(VTarget target, VOption *options = nullptr) const;
5042 
5052  VImage premultiply(VOption *options = nullptr) const;
5053 
5059  VImage prewitt(VOption *options = nullptr) const;
5060 
5067  VImage profile(VImage *rows, VOption *options = nullptr) const;
5068 
5075  static VipsBlob *profile_load(const char *name, VOption *options = nullptr);
5076 
5083  VImage project(VImage *rows, VOption *options = nullptr) const;
5084 
5095  VImage quadratic(VImage coeff, VOption *options = nullptr) const;
5096 
5102  VImage rad2float(VOption *options = nullptr) const;
5103 
5117  static VImage radload(const char *filename, VOption *options = nullptr);
5118 
5132  static VImage radload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5133 
5147  static VImage radload_source(VSource source, VOption *options = nullptr);
5148 
5161  void radsave(const char *filename, VOption *options = nullptr) const;
5162 
5175  VipsBlob *radsave_buffer(VOption *options = nullptr) const;
5176 
5189  void radsave_target(VTarget target, VOption *options = nullptr) const;
5190 
5199  VImage rank(int width, int height, int index, VOption *options = nullptr) const;
5200 
5220  static VImage rawload(const char *filename, int width, int height, int bands, VOption *options = nullptr);
5221 
5234  void rawsave(const char *filename, VOption *options = nullptr) const;
5235 
5248  void rawsave_fd(int fd, VOption *options = nullptr) const;
5249 
5256  VImage recomb(VImage m, VOption *options = nullptr) const;
5257 
5270  VImage reduce(double hshrink, double vshrink, VOption *options = nullptr) const;
5271 
5283  VImage reduceh(double hshrink, VOption *options = nullptr) const;
5284 
5296  VImage reducev(double vshrink, VOption *options = nullptr) const;
5297 
5305  VImage relational(VImage right, VipsOperationRelational relational, VOption *options = nullptr) const;
5306 
5314  VImage relational_const(VipsOperationRelational relational, std::vector<double> c, VOption *options = nullptr) const;
5315 
5322  VImage remainder(VImage right, VOption *options = nullptr) const;
5323 
5330  VImage remainder_const(std::vector<double> c, VOption *options = nullptr) const;
5331 
5339  VImage replicate(int across, int down, VOption *options = nullptr) const;
5340 
5353  VImage resize(double scale, VOption *options = nullptr) const;
5354 
5361  VImage rot(VipsAngle angle, VOption *options = nullptr) const;
5362 
5372  VImage rot45(VOption *options = nullptr) const;
5373 
5389  VImage rotate(double angle, VOption *options = nullptr) const;
5390 
5397  VImage round(VipsOperationRound round, VOption *options = nullptr) const;
5398 
5404  VImage sRGB2HSV(VOption *options = nullptr) const;
5405 
5411  VImage sRGB2scRGB(VOption *options = nullptr) const;
5412 
5422  VImage scRGB2BW(VOption *options = nullptr) const;
5423 
5429  VImage scRGB2XYZ(VOption *options = nullptr) const;
5430 
5440  VImage scRGB2sRGB(VOption *options = nullptr) const;
5441 
5452  VImage scale(VOption *options = nullptr) const;
5453 
5459  VImage scharr(VOption *options = nullptr) const;
5460 
5470  VImage sequential(VOption *options = nullptr) const;
5471 
5486  VImage sharpen(VOption *options = nullptr) const;
5487 
5499  VImage shrink(double hshrink, double vshrink, VOption *options = nullptr) const;
5500 
5511  VImage shrinkh(int hshrink, VOption *options = nullptr) const;
5512 
5523  VImage shrinkv(int vshrink, VOption *options = nullptr) const;
5524 
5530  VImage sign(VOption *options = nullptr) const;
5531 
5548  VImage similarity(VOption *options = nullptr) const;
5549 
5563  static VImage sines(int width, int height, VOption *options = nullptr);
5564 
5577  VImage smartcrop(int width, int height, VOption *options = nullptr) const;
5578 
5584  VImage sobel(VOption *options = nullptr) const;
5585 
5592  VImage spcor(VImage ref, VOption *options = nullptr) const;
5593 
5599  VImage spectrum(VOption *options = nullptr) const;
5600 
5606  VImage stats(VOption *options = nullptr) const;
5607 
5622  VImage stdif(int width, int height, VOption *options = nullptr) const;
5623 
5635  VImage subsample(int xfac, int yfac, VOption *options = nullptr) const;
5636 
5643  VImage subtract(VImage right, VOption *options = nullptr) const;
5644 
5651  static VImage sum(std::vector<VImage> in, VOption *options = nullptr);
5652 
5669  static VImage svgload(const char *filename, VOption *options = nullptr);
5670 
5687  static VImage svgload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5688 
5705  static VImage svgload_source(VSource source, VOption *options = nullptr);
5706 
5713  static VImage switch_image(std::vector<VImage> tests, VOption *options = nullptr);
5714 
5726  static void system(const char *cmd_format, VOption *options = nullptr);
5727 
5747  static VImage text(const char *text, VOption *options = nullptr);
5748 
5768  static VImage thumbnail(const char *filename, int width, VOption *options = nullptr);
5769 
5790  static VImage thumbnail_buffer(VipsBlob *buffer, int width, VOption *options = nullptr);
5791 
5810  VImage thumbnail_image(int width, VOption *options = nullptr) const;
5811 
5832  static VImage thumbnail_source(VSource source, int width, VOption *options = nullptr);
5833 
5851  static VImage tiffload(const char *filename, VOption *options = nullptr);
5852 
5870  static VImage tiffload_buffer(VipsBlob *buffer, VOption *options = nullptr);
5871 
5889  static VImage tiffload_source(VSource source, VOption *options = nullptr);
5890 
5923  void tiffsave(const char *filename, VOption *options = nullptr) const;
5924 
5957  VipsBlob *tiffsave_buffer(VOption *options = nullptr) const;
5958 
5991  void tiffsave_target(VTarget target, VOption *options = nullptr) const;
5992 
6007  VImage tilecache(VOption *options = nullptr) const;
6008 
6027  static VImage tonelut(VOption *options = nullptr);
6028 
6038  VImage transpose3d(VOption *options = nullptr) const;
6039 
6050  VImage unpremultiply(VOption *options = nullptr) const;
6051 
6065  static VImage vipsload(const char *filename, VOption *options = nullptr);
6066 
6080  static VImage vipsload_source(VSource source, VOption *options = nullptr);
6081 
6094  void vipssave(const char *filename, VOption *options = nullptr) const;
6095 
6108  void vipssave_target(VTarget target, VOption *options = nullptr) const;
6109 
6126  static VImage webpload(const char *filename, VOption *options = nullptr);
6127 
6144  static VImage webpload_buffer(VipsBlob *buffer, VOption *options = nullptr);
6145 
6162  static VImage webpload_source(VSource source, VOption *options = nullptr);
6163 
6187  void webpsave(const char *filename, VOption *options = nullptr) const;
6188 
6212  VipsBlob *webpsave_buffer(VOption *options = nullptr) const;
6213 
6236  void webpsave_mime(VOption *options = nullptr) const;
6237 
6261  void webpsave_target(VTarget target, VOption *options = nullptr) const;
6262 
6275  static VImage worley(int width, int height, VOption *options = nullptr);
6276 
6287  VImage wrap(VOption *options = nullptr) const;
6288 
6302  static VImage xyz(int width, int height, VOption *options = nullptr);
6303 
6315  static VImage zone(int width, int height, VOption *options = nullptr);
6316 
6324  VImage zoom(int xfac, int yfac, VOption *options = nullptr) const;
6325 };
6326 
6327 VIPS_NAMESPACE_END
6328 
6329 #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:1533
VImage rint(VOption *options=nullptr) const
Definition: VImage8.h:1293
VImage fastcor(VImage ref, VOption *options=nullptr) const
Definition: vips-operators.cpp:1025
VImage scRGB2sRGB(VOption *options=nullptr) const
Definition: vips-operators.cpp:3129
void niftisave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2476
void set(const char *field, double *value, int n)
Definition: VImage8.h:621
VImage flatten(VOption *options=nullptr) const
Definition: vips-operators.cpp:1097
VImage convi(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:679
double xres() const
Definition: VImage8.h:500
static VImage bandrank(std::vector< VImage > in, VOption *options=nullptr)
Definition: vips-operators.cpp:382
VImage sign(VOption *options=nullptr) const
Definition: vips-operators.cpp:3229
VImage stdif(int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:3329
static VImage svgload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:3406
static VImage new_from_memory(void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage8.h:922
static VImage switch_image(std::vector< VImage > tests, VOption *options=nullptr)
Definition: vips-operators.cpp:3418
VImage conv(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:627
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:2062
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:1262
int get_int(const char *field) const
Definition: VImage8.h:689
static VImage radload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2786
VipsBlob * tiffsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:3545
static VImage zone(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3761
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:1732
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:2639
double deviate(VOption *options=nullptr) const
Definition: vips-operators.cpp:825
VImage fill_nearest(VOption *options=nullptr) const
Definition: vips-operators.cpp:1038
VImage wop(VImage other, VOption *options=nullptr) const
Definition: VImage8.h:1556
void rawsave_fd(int fd, VOption *options=nullptr) const
Definition: vips-operators.cpp:2888
VImage msb(VOption *options=nullptr) const
Definition: vips-operators.cpp:2427
VImage hough_circle(VOption *options=nullptr) const
Definition: vips-operators.cpp:1557
static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options=nullptr)
Definition: vips-operators.cpp:2171
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:2155
VImage subsample(int xfac, int yfac, VOption *options=nullptr) const
Definition: vips-operators.cpp:3343
VImage matrixinvert(VOption *options=nullptr) const
Definition: vips-operators.cpp:2260
VImage divide(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:837
VImage gaussblur(double sigma, VOption *options=nullptr) const
Definition: vips-operators.cpp:1185
VImage extract_area(int left, int top, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:971
VImage replicate(int across, int down, VOption *options=nullptr) const
Definition: vips-operators.cpp:3003
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:3696
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:2108
VImage copy(VOption *options=nullptr) const
Definition: vips-operators.cpp:705
static VImage fitsload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1065
VImage cache(VOption *options=nullptr) const
Definition: vips-operators.cpp:471
static VImage webpload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:3664
static VImage vipsload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:3624
static VImage heifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1369
void fitssave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1089
VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options=nullptr) const
Definition: vips-operators.cpp:2373
static VImage matrixload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2284
static VImage gifload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1250
void gifsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1294
VImage Yxy2XYZ(VOption *options=nullptr) const
Definition: vips-operators.cpp:222
static VImage csvload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:746
static VImage pngload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2595
VImage rot45(VOption *options=nullptr) const
Definition: vips-operators.cpp:3043
static VImage new_memory()
Definition: VImage8.h:856
static VImage jpegload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1784
void jp2ksave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1764
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:916
void set(const char *field, int value)
Definition: VImage8.h:587
VImage conva(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:640
VImage gamma(VOption *options=nullptr) const
Definition: vips-operators.cpp:1173
VImage sin(VOption *options=nullptr) const
Definition: VImage8.h:1383
void csvsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:778
VImage hist_match(VImage ref, VOption *options=nullptr) const
Definition: vips-operators.cpp:1520
static VImage jpegload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1796
VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition: vips-operators.cpp:419
VImage byteswap(VOption *options=nullptr) const
Definition: vips-operators.cpp:459
VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options=nullptr) const
Definition: vips-operators.cpp:2345
static VImage jp2kload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1708
static VImage vipsload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3612
VImage project(VImage *rows, VOption *options=nullptr) const
Definition: vips-operators.cpp:2748
VImage recomb(VImage m, VOption *options=nullptr) const
Definition: vips-operators.cpp:2896
static VImage jxlload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1867
VImage write(VImage out) const
Definition: VImage.cpp:680
static VImage tiffload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:3513
VImage rotate(double angle, VOption *options=nullptr) const
Definition: vips-operators.cpp:3055
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:357
static VImage sum(std::vector< VImage > in, VOption *options=nullptr)
Definition: vips-operators.cpp:3370
VipsBlob * jxlsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1887
VImage wrap(VOption *options=nullptr) const
Definition: vips-operators.cpp:3736
static VImage niftiload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2464
VImage affine(std::vector< double > matrix, VOption *options=nullptr) const
Definition: vips-operators.cpp:259
VImage dE76(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:799
static VImage tiffload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3501
VImage rot90(VOption *options=nullptr) const
Definition: VImage8.h:1215
void radsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2822
void jp2ksave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1744
VImage smartcrop(int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:3266
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:1211
static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options=nullptr)
Definition: vips-operators.cpp:2141
VImage reduceh(double hshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:2923
static VImage new_from_memory_copy(void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage8.h:940
VImage case_image(std::vector< VImage > cases, VOption *options=nullptr) const
Definition: vips-operators.cpp:495
static VImage pdfload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2520
static VImage fitsload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1077
VImage remainder_const(std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:2990
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:770
static VImage pdfload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:2532
VImage bandor(VOption *options=nullptr) const
Definition: VImage8.h:1317
VImage convasep(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:653
VImage compass(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:534
static VImage svgload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3382
void magicksave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1982
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:1506
const char * filename() const
Definition: VImage8.h:546
void webpsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:3688
static VImage jpegload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1772
static VImage logmat(double sigma, double min_ampl, VOption *options=nullptr)
Definition: vips-operators.cpp:1945
static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options=nullptr)
Definition: vips-operators.cpp:2028
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:3280
static VImage xyz(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3748
VipsCoding coding() const
Definition: VImage8.h:471
VImage remainder(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:2977
static VImage magickload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1970
VImage LCh2CMC(VOption *options=nullptr) const
Definition: vips-operators.cpp:42
VImage spcor(VImage ref, VOption *options=nullptr) const
Definition: vips-operators.cpp:3292
static VImage text(const char *text, VOption *options=nullptr)
Definition: vips-operators.cpp:3437
VImage hist_cum(VOption *options=nullptr) const
Definition: vips-operators.cpp:1421
VImage crop(int left, int top, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:730
void tiffsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:3557
VImage float2rad(VOption *options=nullptr) const
Definition: vips-operators.cpp:1122
VImage globalbalance(VOption *options=nullptr) const
Definition: vips-operators.cpp:1302
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:308
VImage sequential(VOption *options=nullptr) const
Definition: vips-operators.cpp:3165
VipsBlob * radsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:2830
static VImage matrixload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2272
VImage hist_find(VOption *options=nullptr) const
Definition: vips-operators.cpp:1457
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:871
void webpsave_mime(VOption *options=nullptr) const
Definition: vips-operators.cpp:3708
static VImage pngload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:2607
VImage dE00(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:786
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:2405
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:1843
static VImage arrayjoin(std::vector< VImage > in, VOption *options=nullptr)
Definition: vips-operators.cpp:284
void matrixprint(VOption *options=nullptr) const
Definition: vips-operators.cpp:2296
VImage grid(int tile_height, int across, int down, VOption *options=nullptr) const
Definition: vips-operators.cpp:1342
void ppmsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2683
VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:1314
static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1720
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:1198
int find_trim(int *top, int *width, int *height, VOption *options=nullptr) const
Definition: vips-operators.cpp:1050
VImage linecache(VOption *options=nullptr) const
Definition: vips-operators.cpp:1933
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:2079
VImage fwfft(VOption *options=nullptr) const
Definition: vips-operators.cpp:1161
VImage autorot(VOption *options=nullptr) const
Definition: vips-operators.cpp:296
VImage phasecor(VImage in2, VOption *options=nullptr) const
Definition: vips-operators.cpp:2582
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:3715
VImage resize(double scale, VOption *options=nullptr) const
Definition: vips-operators.cpp:3017
static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options=nullptr)
Definition: vips-operators.cpp:1134
static VImage gifload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1238
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:2452
VImage complexget(VipsOperationComplexget get, VOption *options=nullptr) const
Definition: vips-operators.cpp:587
void matrixsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2303
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:2186
void dzsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:947
VImage pow(std::vector< double > other, VOption *options=nullptr) const
Definition: VImage8.h:1546
VImage bandunfold(VOption *options=nullptr) const
Definition: vips-operators.cpp:394
VImage reduce(double hshrink, double vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:2909
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:1990
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:3636
VImage hist_equal(VOption *options=nullptr) const
Definition: vips-operators.cpp:1445
VImage hist_find_ndim(VOption *options=nullptr) const
Definition: vips-operators.cpp:1482
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:3488
static VipsBlob * profile_load(const char *name, VOption *options=nullptr)
Definition: vips-operators.cpp:2736
static VOption * option()
Definition: VImage8.h:832
static VImage openslideload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2496
VImage imag(VOption *options=nullptr) const
Definition: VImage8.h:1347
static VImage matload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2248
VImage add(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:246
void rawsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:2880
static VImage thumbnail(const char *filename, int width, VOption *options=nullptr)
Definition: vips-operators.cpp:3449
VipsBlob * heifsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1401
VipsBlob * jp2ksave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1752
static VImage pdfload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2544
static VImage eye(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:1000
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:2691
VImage hist_find_indexed(VImage index, VOption *options=nullptr) const
Definition: vips-operators.cpp:1469
static VImage radload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2810
static VImage jxlload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:1855
VImage boolean_const(VipsOperationBoolean boolean, std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:433
double hist_entropy(VOption *options=nullptr) const
Definition: vips-operators.cpp:1433
VImage dECMC(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:812
VImage copy_memory() const
Definition: VImage8.h:1032
static VImage tonelut(VOption *options=nullptr)
Definition: vips-operators.cpp:3577
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:2659
VImage insert(VImage sub, int x, int y, VOption *options=nullptr) const
Definition: vips-operators.cpp:1643
VImage relational(VImage right, VipsOperationRelational relational, VOption *options=nullptr) const
Definition: vips-operators.cpp:2949
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:3093
int percent(double percent, VOption *options=nullptr) const
Definition: vips-operators.cpp:2556
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:1581
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:3525
static VImage pngload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2619
void matrixsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2311
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:2093
VImage scharr(VOption *options=nullptr) const
Definition: vips-operators.cpp:3153
VImage rot(VipsAngle angle, VOption *options=nullptr) const
Definition: vips-operators.cpp:3030
static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=nullptr)
Definition: vips-operators.cpp:2125
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:2963
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:692
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:1899
VImage hough_line(VOption *options=nullptr) const
Definition: vips-operators.cpp:1569
static VImage csvload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:758
VImage invfft(VOption *options=nullptr) const
Definition: vips-operators.cpp:1682
double yres() const
Definition: VImage8.h:509
static VImage grey(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:1329
void set(const char *field, std::vector< double > value)
Definition: VImage8.h:632
double max(VOption *options=nullptr) const
Definition: vips-operators.cpp:2319
static VImage new_from_memory_steal(void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage.cpp:640
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:3644
VImage scRGB2XYZ(VOption *options=nullptr) const
Definition: vips-operators.cpp:3117
VImage Lab2XYZ(VOption *options=nullptr) const
Definition: vips-operators.cpp:102
void radsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2842
static VImage radload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:2798
int yoffset() const
Definition: VImage8.h:527
VImage complexform(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:574
static VImage black(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:406
VImage falsecolour(VOption *options=nullptr) const
Definition: vips-operators.cpp:1013
VipsBlob * jpegsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1816
VipsInterpretation interpretation() const
Definition: VImage8.h:481
static VImage identity(VOption *options=nullptr)
Definition: vips-operators.cpp:1618
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:1274
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:2220
VImage spectrum(VOption *options=nullptr) const
Definition: vips-operators.cpp:3305
static VImage worley(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3723
VImage sRGB2HSV(VOption *options=nullptr) const
Definition: vips-operators.cpp:3081
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:613
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:3317
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:370
VImage embed(int x, int y, int width, int height, VOption *options=nullptr) const
Definition: vips-operators.cpp:955
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:2044
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:1958
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:2569
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:3537
static VImage openexrload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:2484
VImage shrinkh(int hshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:3203
VImage hist_plot(VOption *options=nullptr) const
Definition: vips-operators.cpp:1545
VImage tanh(VOption *options=nullptr) const
Definition: VImage8.h:1455
VImage zoom(int xfac, int yfac, VOption *options=nullptr) const
Definition: vips-operators.cpp:3774
VImage bandfold(VOption *options=nullptr) const
Definition: vips-operators.cpp:333
VImage premultiply(VOption *options=nullptr) const
Definition: vips-operators.cpp:2699
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:3565
static VImage svgload_buffer(VipsBlob *buffer, VOption *options=nullptr)
Definition: vips-operators.cpp:3394
static VImage heifload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:1357
VImage prewitt(VOption *options=nullptr) const
Definition: vips-operators.cpp:2711
VImage LCh2Lab(VOption *options=nullptr) const
Definition: vips-operators.cpp:54
void heifsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1393
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:272
VImage scRGB2BW(VOption *options=nullptr) const
Definition: vips-operators.cpp:3105
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:447
static VImage new_temp_file(const char *file_format=".v")
Definition: VImage8.h:866
VImage labelregions(VOption *options=nullptr) const
Definition: vips-operators.cpp:1907
VImage multiply(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:2439
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:2631
bool hist_ismonotonic(VOption *options=nullptr) const
Definition: vips-operators.cpp:1494
VImage XYZ2CMYK(VOption *options=nullptr) const
Definition: vips-operators.cpp:174
VImage complex(VipsOperationComplex cmplx, VOption *options=nullptr) const
Definition: vips-operators.cpp:547
VImage freqmult(VImage mask, VOption *options=nullptr) const
Definition: vips-operators.cpp:1148
VImage icc_import(VOption *options=nullptr) const
Definition: vips-operators.cpp:1593
VImage rot270(VOption *options=nullptr) const
Definition: VImage8.h:1233
void pngsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:2651
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:2387
VImage sharpen(VOption *options=nullptr) const
Definition: vips-operators.cpp:3177
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:2002
VImage quadratic(VImage coeff, VOption *options=nullptr) const
Definition: vips-operators.cpp:2761
static void system(const char *cmd_format, VOption *options=nullptr)
Definition: vips-operators.cpp:3430
VImage shrink(double hshrink, double vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:3189
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:666
VImage profile(VImage *rows, VOption *options=nullptr) const
Definition: vips-operators.cpp:2723
VImage extract_band(int band, VOption *options=nullptr) const
Definition: vips-operators.cpp:987
const void * data() const
Definition: VImage8.h:578
VImage bandbool(VipsOperationBoolean boolean, VOption *options=nullptr) const
Definition: vips-operators.cpp:320
VipsBandFormat format() const
Definition: VImage8.h:462
VImage math2_const(VipsOperationMath2 math2, std::vector< double > c, VOption *options=nullptr) const
Definition: vips-operators.cpp:2234
VImage transpose3d(VOption *options=nullptr) const
Definition: vips-operators.cpp:3588
VImage reducev(double vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:2936
void dzsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:927
static VImage webpload(const char *filename, VOption *options=nullptr)
Definition: vips-operators.cpp:3652
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:521
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
void jpegsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1835
VImage cosh(VOption *options=nullptr) const
Definition: VImage8.h:1446
double countlines(VipsDirection direction, VOption *options=nullptr) const
Definition: vips-operators.cpp:717
VImage icc_transform(const char *output_profile, VOption *options=nullptr) const
Definition: vips-operators.cpp:1605
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:2774
static VImage sines(int width, int height, VOption *options=nullptr)
Definition: vips-operators.cpp:3253
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:1109
VImage math(VipsOperationMath math, VOption *options=nullptr) const
Definition: vips-operators.cpp:2207
VImage similarity(VOption *options=nullptr) const
Definition: vips-operators.cpp:3241
VImage unpremultiply(VOption *options=nullptr) const
Definition: vips-operators.cpp:3600
VImage maplut(VImage lut, VOption *options=nullptr) const
Definition: vips-operators.cpp:2015
VipsBlob * gifsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:1282
static VImage ppmload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2671
void jpegsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1808
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:1658
int xoffset() const
Definition: VImage8.h:518
VImage rank(int width, int height, int index, VOption *options=nullptr) const
Definition: vips-operators.cpp:2850
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:2865
void jpegsave_mime(VOption *options=nullptr) const
Definition: vips-operators.cpp:1828
static VImage heifload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:1381
VImage XYZ2Lab(VOption *options=nullptr) const
Definition: vips-operators.cpp:186
static VImage openslideload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:2508
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:2361
VImage invertlut(VOption *options=nullptr) const
Definition: vips-operators.cpp:1670
VipsImage * get_image() const
Definition: VImage8.h:426
VImage measure(int h, int v, VOption *options=nullptr) const
Definition: vips-operators.cpp:2331
void jxlsave(const char *filename, VOption *options=nullptr) const
Definition: vips-operators.cpp:1879
VImage wop(double other, VOption *options=nullptr) const
Definition: VImage8.h:1565
VImage round(VipsOperationRound round, VOption *options=nullptr) const
Definition: vips-operators.cpp:3068
std::vector< double > getpoint(int x, int y, VOption *options=nullptr) const
Definition: vips-operators.cpp:1224
VImage subtract(VImage right, VOption *options=nullptr) const
Definition: vips-operators.cpp:3357
VImage scale(VOption *options=nullptr) const
Definition: vips-operators.cpp:3141
VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options=nullptr) const
Definition: vips-operators.cpp:560
VImage acosh(VOption *options=nullptr) const
Definition: VImage8.h:1473
VipsBlob * dzsave_buffer(VOption *options=nullptr) const
Definition: vips-operators.cpp:935
VImage thumbnail_image(int width, VOption *options=nullptr) const
Definition: vips-operators.cpp:3475
VImage shrinkv(int vshrink, VOption *options=nullptr) const
Definition: vips-operators.cpp:3216
VImage conj(VOption *options=nullptr) const
Definition: VImage8.h:1374
static VImage webpload_source(VSource source, VOption *options=nullptr)
Definition: vips-operators.cpp:3676
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:1694
void heifsave_target(VTarget target, VOption *options=nullptr) const
Definition: vips-operators.cpp:1413
VImage canny(VOption *options=nullptr) const
Definition: vips-operators.cpp:483
VImage cast(VipsBandFormat format, VOption *options=nullptr) const
Definition: vips-operators.cpp:508
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