vips-cpp  8.11
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 {
69 private:
70  // can be NULL, see eg. VObject()
71  VipsObject *vobject;
72 
73 public:
80  VObject( VipsObject *new_vobject, VSteal steal = STEAL ) :
81  vobject( new_vobject )
82  {
83  // we allow NULL init, eg. "VImage a;"
84  g_assert( !new_vobject ||
85  VIPS_IS_OBJECT( new_vobject ) );
86 
87 #ifdef VIPS_DEBUG_VERBOSE
88  printf( "VObject constructor, obj = %p, steal = %d\n",
89  new_vobject, steal );
90  if( new_vobject ) {
91  printf( " obj " );
92  vips_object_print_name( VIPS_OBJECT( new_vobject ) );
93  printf( "\n" );
94  }
95 #endif /*VIPS_DEBUG_VERBOSE*/
96 
97  if( !steal && vobject ) {
98 #ifdef VIPS_DEBUG_VERBOSE
99  printf( " reffing object\n" );
100 #endif /*VIPS_DEBUG_VERBOSE*/
101  g_object_ref( vobject );
102  }
103  }
104 
105  VObject() :
106  vobject( 0 )
107  {
108  }
109 
110  VObject( const VObject &a ) :
111  vobject( a.vobject )
112  {
113  g_assert( !vobject ||
114  VIPS_IS_OBJECT( vobject ) );
115 
116 #ifdef VIPS_DEBUG_VERBOSE
117  printf( "VObject copy constructor, obj = %p\n",
118  vobject );
119  printf( " reffing object\n" );
120 #endif /*VIPS_DEBUG_VERBOSE*/
121  if( vobject )
122  g_object_ref( vobject );
123  }
124 
125  // assignment ... we must delete the old ref
126  VObject &operator=( const VObject &a )
127  {
128 #ifdef VIPS_DEBUG_VERBOSE
129  printf( "VObject assignment\n" );
130  printf( " reffing %p\n", a.vobject );
131  printf( " unreffing %p\n", vobject );
132 #endif /*VIPS_DEBUG_VERBOSE*/
133 
134  g_assert( !vobject ||
135  VIPS_IS_OBJECT( vobject ) );
136  g_assert( !a.vobject ||
137  VIPS_IS_OBJECT( a.vobject ) );
138 
139  // delete the old ref at the end ... otherwise "a = a;" could
140  // unref before reffing again
141  if( a.vobject )
142  g_object_ref( a.vobject );
143  if( vobject )
144  g_object_unref( vobject );
145  vobject = a.vobject;
146 
147  return( *this );
148  }
149 
150  // this mustn't be virtual: we want this class to only be a pointer,
151  // no vtable allowed
152  ~VObject()
153  {
154 #ifdef VIPS_DEBUG_VERBOSE
155  printf( "VObject destructor\n" );
156  printf( " unreffing %p\n", vobject );
157 #endif /*VIPS_DEBUG_VERBOSE*/
158 
159  g_assert( !vobject ||
160  VIPS_IS_OBJECT( vobject ) );
161 
162  if( vobject )
163  g_object_unref( vobject );
164  }
165 
171  VipsObject *
172  get_object() const
173  {
174  g_assert( !vobject ||
175  VIPS_IS_OBJECT( vobject ) );
176 
177  return( vobject );
178  }
179 
183  bool is_null() const
184  {
185  return vobject == 0;
186  }
187 
188 };
189 
190 class VIPS_CPLUSPLUS_API VImage;
191 class VIPS_CPLUSPLUS_API VInterpolate;
192 class VIPS_CPLUSPLUS_API VSource;
193 class VIPS_CPLUSPLUS_API VTarget;
194 class VIPS_CPLUSPLUS_API VOption;
195 
217 class VOption {
218 private:
219  struct Pair {
220  const char *name;
221 
222  // the thing we pass to and from our caller
223  GValue value;
224 
225  // an input or output parameter ... we guess the direction
226  // from the arg to set()
227  bool input;
228 
229  // the pointer we write output values to
230  union {
231  bool *vbool;
232  int *vint;
233  double *vdouble;
234  VImage *vimage;
235  std::vector<double> *vvector;
236  VipsBlob **vblob;
237  };
238 
239  Pair( const char *name ) :
240  name( name ), input( false ), vimage( 0 )
241  {
242  // argh = {0} won't work wil vanilla C++
243  memset( &value, 0, sizeof( GValue ) );
244  }
245 
246  ~Pair()
247  {
248  g_value_unset( &value );
249  }
250  };
251 
252  std::list<Pair *> options;
253 
254 public:
255  VOption()
256  {
257  }
258 
259  virtual ~VOption();
260 
264  VOption *
265  set( const char *name, bool value );
266 
271  VOption *
272  set( const char *name, int value );
273 
277  VOption *
278  set( const char *name, guint64 value );
279 
283  VOption *
284  set( const char *name, double value );
285 
291  VOption *
292  set( const char *name, const char *value );
293 
300  VOption *
301  set( const char *name, const VObject value );
302 
308  VOption *
309  set( const char *name, std::vector<int> value );
310 
316  VOption *
317  set( const char *name, std::vector<double> value );
318 
324  VOption *
325  set( const char *name, std::vector<VImage> value );
326 
333  VOption *
334  set( const char *name, VipsBlob *value );
335 
339  VOption *
340  set( const char *name, bool *value );
341 
345  VOption *
346  set( const char *name, int *value );
347 
351  VOption *
352  set( const char *name, double *value );
353 
357  VOption *
358  set( const char *name, VImage *value );
359 
363  VOption *
364  set( const char *name, std::vector<double> *value );
365 
370  VOption *
371  set( const char *name, VipsBlob **blob );
372 
377  void
378  set_operation( VipsOperation *operation );
379 
384  void
385  get_operation( VipsOperation *operation );
386 
387 };
388 
404 class VImage : public VObject
405 {
406 public:
407  using VObject::is_null;
408 
415  VImage( VipsImage *image, VSteal steal = STEAL ) :
416  VObject( (VipsObject *) image, steal )
417  {
418  }
419 
423  VImage() :
424  VObject( 0 )
425  {
426  }
427 
433  VipsImage *
434  get_image() const
435  {
436  return( (VipsImage *) VObject::get_object() );
437  }
438 
442  int
443  width() const
444  {
445  return( vips_image_get_width( get_image() ) );
446  }
447 
451  int
452  height() const
453  {
454  return( vips_image_get_height( get_image() ) );
455  }
456 
460  int
461  bands() const
462  {
463  return( vips_image_get_bands( get_image() ) );
464  }
465 
469  VipsBandFormat
470  format() const
471  {
472  return( vips_image_get_format( get_image() ) );
473  }
474 
478  VipsCoding
479  coding() const
480  {
481  return( vips_image_get_coding( get_image() ) );
482  }
483 
488  VipsInterpretation
489  interpretation() const
490  {
491  return( vips_image_get_interpretation( get_image() ) );
492  }
493 
498  VipsInterpretation
500  {
501  return( vips_image_guess_interpretation( get_image() ) );
502  }
503 
507  double
508  xres() const
509  {
510  return( vips_image_get_xres( get_image() ) );
511  }
512 
516  double
517  yres() const
518  {
519  return( vips_image_get_yres( get_image() ) );
520  }
521 
525  int
526  xoffset() const
527  {
528  return( vips_image_get_xoffset( get_image() ) );
529  }
530 
534  int
535  yoffset() const
536  {
537  return( vips_image_get_yoffset( get_image() ) );
538  }
539 
543  bool
544  has_alpha() const
545  {
546  return( vips_image_hasalpha( get_image() ) );
547  }
548 
553  const char *
554  filename() const
555  {
556  return( vips_image_get_filename( get_image() ) );
557  }
558 
565  const void *
566  data() const
567  {
568  return( vips_image_get_data( get_image() ) );
569  }
570 
574  void
575  set( const char *field, int value )
576  {
577  vips_image_set_int( this->get_image(), field, value );
578  }
579 
585  void
586  set( const char *field, int *value, int n )
587  {
588  vips_image_set_array_int( this->get_image(), field, value, n );
589  }
590 
596  void
597  set( const char *field, std::vector<int> value )
598  {
599  vips_image_set_array_int( this->get_image(), field, &value[0],
600  static_cast<int>( value.size() ) );
601  }
602 
608  void
609  set( const char *field, double *value, int n )
610  {
611  vips_image_set_array_double( this->get_image(), field, value, n );
612  }
613 
619  void
620  set( const char *field, std::vector<double> value )
621  {
622  vips_image_set_array_double( this->get_image(), field, &value[0],
623  static_cast<int>( value.size() ) );
624  }
625 
629  void
630  set( const char *field, double value )
631  {
632  vips_image_set_double( this->get_image(), field, value );
633  }
634 
640  void
641  set( const char *field, const char *value )
642  {
643  vips_image_set_string( this->get_image(), field, value );
644  }
645 
653  void
654  set( const char *field,
655  VipsCallbackFn free_fn, void *data, size_t length )
656  {
657  vips_image_set_blob( this->get_image(), field,
658  free_fn, data, length );
659  }
660 
665  GType
666  get_typeof( const char *field ) const
667  {
668  return( vips_image_get_typeof( this->get_image(), field ) );
669  }
670 
676  int
677  get_int( const char *field ) const
678  {
679  int value;
680 
681  if( vips_image_get_int( this->get_image(), field, &value ) )
682  throw( VError() );
683 
684  return( value );
685  }
686 
693  void
694  get_array_int( const char *field, int **out, int *n ) const
695  {
696  if( vips_image_get_array_int( this->get_image(),
697  field, out, n ) )
698  throw( VError() );
699  }
700 
706  std::vector<int>
707  get_array_int( const char *field ) const
708  {
709  int length;
710  int *array;
711 
712  if( vips_image_get_array_int( this->get_image(),
713  field, &array, &length ) )
714  throw( VError() );
715 
716  std::vector<int> vector( array, array + length );
717 
718  return( vector );
719  }
720 
727  void
728  get_array_double( const char *field, double **out, int *n ) const
729  {
730  if( vips_image_get_array_double( this->get_image(),
731  field, out, n ) )
732  throw( VError() );
733  }
734 
740  std::vector<double>
741  get_array_double( const char *field ) const
742  {
743  int length;
744  double *array;
745 
746  if( vips_image_get_array_double( this->get_image(),
747  field, &array, &length ) )
748  throw( VError() );
749 
750  std::vector<double> vector( array, array + length );
751 
752  return( vector );
753  }
754 
760  double
761  get_double( const char *field ) const
762  {
763  double value;
764 
765  if( vips_image_get_double( this->get_image(), field, &value ) )
766  throw( VError() );
767 
768  return( value );
769  }
770 
777  const char *
778  get_string( const char *field ) const
779  {
780  const char *value;
781 
782  if( vips_image_get_string( this->get_image(), field, &value ) )
783  throw( VError() );
784 
785  return( value );
786  }
787 
794  const void *
795  get_blob( const char *field, size_t *length ) const
796  {
797  const void *value;
798 
799  if( vips_image_get_blob( this->get_image(), field,
800  &value, length ) )
801  throw( VError() );
802 
803  return( value );
804  }
805 
810  bool
811  remove( const char *name ) const
812  {
813  return( vips_image_remove( get_image(), name ) );
814  }
815 
819  static VOption *
821  {
822  return( new VOption() );
823  }
824 
829  static void
830  call_option_string( const char *operation_name,
831  const char *option_string, VOption *options = 0 );
832 
836  static void
837  call( const char *operation_name, VOption *options = 0 );
838 
843  static VImage
845  {
846  return( VImage( vips_image_new_memory() ) );
847  }
848 
853  static VImage
854  new_temp_file( const char *file_format = ".v" )
855  {
856  VipsImage *image;
857 
858  if( !(image = vips_image_new_temp_file( file_format )) )
859  throw( VError() );
860 
861  return( VImage( image ) );
862  }
863 
870  static VImage
871  new_from_file( const char *name, VOption *options = 0 );
872 
880  static VImage
881  new_from_buffer( const void *buf, size_t len,
882  const char *option_string, VOption *options = 0 );
883 
891  static VImage
892  new_from_buffer( const std::string &buf,
893  const char *option_string, VOption *options = 0 );
894 
901  static VImage
902  new_from_source( VSource source,
903  const char *option_string, VOption *options = 0 );
904 
909  static VImage
910  new_from_memory( void *data, size_t size,
911  int width, int height, int bands, VipsBandFormat format )
912  {
913  VipsImage *image;
914 
915  if( !(image = vips_image_new_from_memory( data, size,
916  width, height, bands, format )) )
917  throw( VError() );
918 
919  return( VImage( image ) );
920  }
921 
929  static VImage
930  new_from_memory_steal( void *data, size_t size,
931  int width, int height, int bands, VipsBandFormat format );
932 
937  static VImage
938  new_matrix( int width, int height );
939 
944  static VImage
945  new_matrix( int width, int height, double *array, int size )
946  {
947  VipsImage *image;
948 
949  if( !(image = vips_image_new_matrix_from_array( width, height,
950  array, size )) )
951  throw( VError() );
952 
953  return( VImage( image ) );
954  }
955 
960  static VImage
961  new_matrixv( int width, int height, ... );
962 
967  VImage
968  new_from_image( std::vector<double> pixel ) const
969  {
970  VipsImage *image;
971 
972  if( !(image = vips_image_new_from_image( this->get_image(),
973  &pixel[0], static_cast<int>( pixel.size() ) )) )
974  throw( VError() );
975 
976  return( VImage( image ) );
977  }
978 
983  VImage
984  new_from_image( double pixel ) const
985  {
986  return( new_from_image( to_vectorv( 1, pixel ) ) );
987  }
988 
994  VImage
995  copy_memory() const
996  {
997  VipsImage *image;
998 
999  if( !(image = vips_image_copy_memory( this->get_image() )) )
1000  throw( VError() );
1001 
1002  return( VImage( image ) );
1003  }
1004 
1008  VImage write( VImage out ) const;
1009 
1016  void write_to_file( const char *name, VOption *options = 0 ) const;
1017 
1031  void write_to_buffer( const char *suffix, void **buf, size_t *size,
1032  VOption *options = 0 ) const;
1033 
1040  void write_to_target( const char *suffix, VTarget target,
1041  VOption *options = 0 ) const;
1042 
1046  void *
1047  write_to_memory( size_t *size ) const
1048  {
1049  void *result;
1050 
1051  if( !(result = vips_image_write_to_memory( this->get_image(),
1052  size )) )
1053  throw( VError() );
1054 
1055  return( result );
1056  }
1057 
1063  VImage
1064  linear( double a, double b, VOption *options = 0 ) const
1065  {
1066  return( this->linear( to_vector( a ), to_vector( b ),
1067  options ) );
1068  }
1069 
1075  VImage
1076  linear( std::vector<double> a, double b, VOption *options = 0 ) const
1077  {
1078  return( this->linear( a, to_vector( b ), options ) );
1079  }
1080 
1086  VImage
1087  linear( double a, std::vector<double> b, VOption *options = 0 ) const
1088  {
1089  return( this->linear( to_vector( a ), b, options ) );
1090  }
1091 
1095  std::vector<VImage> bandsplit( VOption *options = 0 ) const;
1096 
1100  VImage bandjoin( VImage other, VOption *options = 0 ) const;
1101 
1106  VImage
1107  bandjoin( double other, VOption *options = 0 ) const
1108  {
1109  return( bandjoin( to_vector( other ), options ) );
1110  }
1111 
1116  VImage
1117  bandjoin( std::vector<double> other, VOption *options = 0 ) const
1118  {
1119  return( bandjoin_const( other, options ) );
1120  }
1121 
1125  VImage composite( VImage other, VipsBlendMode mode,
1126  VOption *options = 0 ) const;
1127 
1131  std::complex<double> minpos( VOption *options = 0 ) const;
1132 
1136  std::complex<double> maxpos( VOption *options = 0 ) const;
1137 
1141  VImage
1142  fliphor( VOption *options = 0 ) const
1143  {
1144  return( flip( VIPS_DIRECTION_HORIZONTAL, options ) );
1145  }
1146 
1150  VImage
1151  flipver( VOption *options = 0 ) const
1152  {
1153  return( flip( VIPS_DIRECTION_VERTICAL, options ) );
1154  }
1155 
1159  VImage
1160  rot90( VOption *options = 0 ) const
1161  {
1162  return( rot( VIPS_ANGLE_D90, options ) );
1163  }
1164 
1168  VImage
1169  rot180( VOption *options = 0 ) const
1170  {
1171  return( rot( VIPS_ANGLE_D180, options ) );
1172  }
1173 
1177  VImage
1178  rot270( VOption *options = 0 ) const
1179  {
1180  return( rot( VIPS_ANGLE_D270, options ) );
1181  }
1182 
1188  VImage
1189  dilate( VImage mask, VOption *options = 0 ) const
1190  {
1191  return( morph( mask, VIPS_OPERATION_MORPHOLOGY_DILATE,
1192  options ) );
1193  }
1194 
1200  VImage
1201  erode( VImage mask, VOption *options = 0 ) const
1202  {
1203  return( morph( mask, VIPS_OPERATION_MORPHOLOGY_ERODE,
1204  options ) );
1205  }
1206 
1210  VImage
1211  median( int size = 3, VOption *options = 0 ) const
1212  {
1213  return( rank( size, size, (size * size) / 2, options ) );
1214  }
1215 
1219  VImage
1220  floor( VOption *options = 0 ) const
1221  {
1222  return( round( VIPS_OPERATION_ROUND_FLOOR, options ) );
1223  }
1224 
1228  VImage
1229  ceil( VOption *options = 0 ) const
1230  {
1231  return( round( VIPS_OPERATION_ROUND_CEIL, options ) );
1232  }
1233 
1237  VImage
1238  rint( VOption *options = 0 ) const
1239  {
1240  return( round( VIPS_OPERATION_ROUND_RINT, options ) );
1241  }
1242 
1249  VImage
1250  bandand( VOption *options = 0 ) const
1251  {
1252  return( bandbool( VIPS_OPERATION_BOOLEAN_AND, options ) );
1253  }
1254 
1261  VImage
1262  bandor( VOption *options = 0 ) const
1263  {
1264  return( bandbool( VIPS_OPERATION_BOOLEAN_OR, options ) );
1265  }
1266 
1273  VImage
1274  bandeor( VOption *options = 0 ) const
1275  {
1276  return( bandbool( VIPS_OPERATION_BOOLEAN_EOR, options ) );
1277  }
1278 
1282  VImage
1283  real( VOption *options = 0 ) const
1284  {
1285  return( complexget( VIPS_OPERATION_COMPLEXGET_REAL, options ) );
1286  }
1287 
1291  VImage
1292  imag( VOption *options = 0 ) const
1293  {
1294  return( complexget( VIPS_OPERATION_COMPLEXGET_IMAG, options ) );
1295  }
1296 
1300  VImage
1301  polar( VOption *options = 0 ) const
1302  {
1303  return( complex( VIPS_OPERATION_COMPLEX_POLAR, options ) );
1304  }
1305 
1309  VImage
1310  rect( VOption *options = 0 ) const
1311  {
1312  return( complex( VIPS_OPERATION_COMPLEX_RECT, options ) );
1313  }
1314 
1318  VImage
1319  conj( VOption *options = 0 ) const
1320  {
1321  return( complex( VIPS_OPERATION_COMPLEX_CONJ, options ) );
1322  }
1323 
1327  VImage
1328  sin( VOption *options = 0 ) const
1329  {
1330  return( math( VIPS_OPERATION_MATH_SIN, options ) );
1331  }
1332 
1336  VImage
1337  cos( VOption *options = 0 ) const
1338  {
1339  return( math( VIPS_OPERATION_MATH_COS, options ) );
1340  }
1341 
1345  VImage
1346  tan( VOption *options = 0 ) const
1347  {
1348  return( math( VIPS_OPERATION_MATH_TAN, options ) );
1349  }
1350 
1354  VImage
1355  asin( VOption *options = 0 ) const
1356  {
1357  return( math( VIPS_OPERATION_MATH_ASIN, options ) );
1358  }
1359 
1363  VImage
1364  acos( VOption *options = 0 ) const
1365  {
1366  return( math( VIPS_OPERATION_MATH_ACOS, options ) );
1367  }
1368 
1372  VImage
1373  atan( VOption *options = 0 ) const
1374  {
1375  return( math( VIPS_OPERATION_MATH_ATAN, options ) );
1376  }
1377 
1381  VImage
1382  log( VOption *options = 0 ) const
1383  {
1384  return( math( VIPS_OPERATION_MATH_LOG, options ) );
1385  }
1386 
1390  VImage
1391  log10( VOption *options = 0 ) const
1392  {
1393  return( math( VIPS_OPERATION_MATH_LOG10, options ) );
1394  }
1395 
1399  VImage
1400  exp( VOption *options = 0 ) const
1401  {
1402  return( math( VIPS_OPERATION_MATH_EXP, options ) );
1403  }
1404 
1408  VImage
1409  exp10( VOption *options = 0 ) const
1410  {
1411  return( math( VIPS_OPERATION_MATH_EXP10, options ) );
1412  }
1413 
1417  VImage
1418  pow( VImage other, VOption *options = 0 ) const
1419  {
1420  return( math2( other, VIPS_OPERATION_MATH2_POW, options ) );
1421  }
1422 
1426  VImage
1427  pow( double other, VOption *options = 0 ) const
1428  {
1429  return( math2_const( VIPS_OPERATION_MATH2_POW,
1430  to_vector( other ), options ) );
1431  }
1432 
1436  VImage
1437  pow( std::vector<double> other, VOption *options = 0 ) const
1438  {
1439  return( math2_const( VIPS_OPERATION_MATH2_POW,
1440  other, options ) );
1441  }
1442 
1446  VImage
1447  wop( VImage other, VOption *options = 0 ) const
1448  {
1449  return( math2( other, VIPS_OPERATION_MATH2_WOP, options ) );
1450  }
1451 
1455  VImage
1456  wop( double other, VOption *options = 0 ) const
1457  {
1458  return( math2_const( VIPS_OPERATION_MATH2_WOP,
1459  to_vector( other ), options ) );
1460  }
1461 
1465  VImage
1466  wop( std::vector<double> other, VOption *options = 0 ) const
1467  {
1468  return( math2_const( VIPS_OPERATION_MATH2_WOP,
1469  other, options ) );
1470  }
1471 
1476  VImage
1477  ifthenelse( std::vector<double> th, VImage el,
1478  VOption *options = 0 ) const
1479  {
1480  return( ifthenelse( el.new_from_image( th ), el, options ) );
1481  }
1482 
1487  VImage
1488  ifthenelse( VImage th, std::vector<double> el,
1489  VOption *options = 0 ) const
1490  {
1491  return( ifthenelse( th, th.new_from_image( el ), options ) );
1492  }
1493 
1498  VImage
1499  ifthenelse( std::vector<double> th, std::vector<double> el,
1500  VOption *options = 0 ) const
1501  {
1502  return( ifthenelse( new_from_image( th ), new_from_image( el ),
1503  options ) );
1504  }
1505 
1510  VImage
1511  ifthenelse( double th, VImage el, VOption *options = 0 ) const
1512  {
1513  return( ifthenelse( to_vector( th ), el, options ) );
1514  }
1515 
1520  VImage
1521  ifthenelse( VImage th, double el, VOption *options = 0 ) const
1522  {
1523  return( ifthenelse( th, to_vector( el ), options ) );
1524  }
1525 
1530  VImage
1531  ifthenelse( double th, double el, VOption *options = 0 ) const
1532  {
1533  return( ifthenelse( to_vector( th ), to_vector( el ),
1534  options ) );
1535  }
1536 
1537  // Operator overloads
1538 
1539  VImage operator[]( int index ) const;
1540 
1541  std::vector<double> operator()( int x, int y ) const;
1542 
1543  friend VIPS_CPLUSPLUS_API VImage
1544  operator+( const VImage a, const VImage b );
1545  friend VIPS_CPLUSPLUS_API VImage
1546  operator+( const double a, const VImage b );
1547  friend VIPS_CPLUSPLUS_API VImage
1548  operator+( const VImage a, const double b );
1549  friend VIPS_CPLUSPLUS_API VImage
1550  operator+( const std::vector<double> a, const VImage b );
1551  friend VIPS_CPLUSPLUS_API VImage
1552  operator+( const VImage a, const std::vector<double> b );
1553 
1554  friend VIPS_CPLUSPLUS_API VImage &
1555  operator+=( VImage &a, const VImage b );
1556  friend VIPS_CPLUSPLUS_API VImage &
1557  operator+=( VImage &a, const double b );
1558  friend VIPS_CPLUSPLUS_API VImage &
1559  operator+=( VImage &a, const std::vector<double> b );
1560 
1561  friend VIPS_CPLUSPLUS_API VImage
1562  operator-( const VImage a, const VImage b );
1563  friend VIPS_CPLUSPLUS_API VImage
1564  operator-( const double a, const VImage b );
1565  friend VIPS_CPLUSPLUS_API VImage
1566  operator-( const VImage a, const double b );
1567  friend VIPS_CPLUSPLUS_API VImage
1568  operator-( const std::vector<double> a, const VImage b );
1569  friend VIPS_CPLUSPLUS_API VImage
1570  operator-( const VImage a, const std::vector<double> b );
1571 
1572  friend VIPS_CPLUSPLUS_API VImage &
1573  operator-=( VImage &a, const VImage b );
1574  friend VIPS_CPLUSPLUS_API VImage &
1575  operator-=( VImage &a, const double b );
1576  friend VIPS_CPLUSPLUS_API VImage &
1577  operator-=( VImage &a, const std::vector<double> b );
1578 
1579  friend VIPS_CPLUSPLUS_API VImage
1580  operator-( const VImage a );
1581 
1582  friend VIPS_CPLUSPLUS_API VImage
1583  operator*( const VImage a, const VImage b );
1584  friend VIPS_CPLUSPLUS_API VImage
1585  operator*( const double a, const VImage b );
1586  friend VIPS_CPLUSPLUS_API VImage
1587  operator*( const VImage a, const double b );
1588  friend VIPS_CPLUSPLUS_API VImage
1589  operator*( const std::vector<double> a, const VImage b );
1590  friend VIPS_CPLUSPLUS_API VImage
1591  operator*( const VImage a, const std::vector<double> b );
1592 
1593  friend VIPS_CPLUSPLUS_API VImage &
1594  operator*=( VImage &a, const VImage b );
1595  friend VIPS_CPLUSPLUS_API VImage &
1596  operator*=( VImage &a, const double b );
1597  friend VIPS_CPLUSPLUS_API VImage &
1598  operator*=( VImage &a, const std::vector<double> b );
1599 
1600  friend VIPS_CPLUSPLUS_API VImage
1601  operator/( const VImage a, const VImage b );
1602  friend VIPS_CPLUSPLUS_API VImage
1603  operator/( const double a, const VImage b );
1604  friend VIPS_CPLUSPLUS_API VImage
1605  operator/( const VImage a, const double b );
1606  friend VIPS_CPLUSPLUS_API VImage
1607  operator/( const std::vector<double> a, const VImage b );
1608  friend VIPS_CPLUSPLUS_API VImage
1609  operator/( const VImage a, const std::vector<double> b );
1610 
1611  friend VIPS_CPLUSPLUS_API VImage &
1612  operator/=( VImage &a, const VImage b );
1613  friend VIPS_CPLUSPLUS_API VImage &
1614  operator/=( VImage &a, const double b );
1615  friend VIPS_CPLUSPLUS_API VImage &
1616  operator/=( VImage &a, const std::vector<double> b );
1617 
1618  friend VIPS_CPLUSPLUS_API VImage
1619  operator%( const VImage a, const VImage b );
1620  friend VIPS_CPLUSPLUS_API VImage
1621  operator%( const VImage a, const double b );
1622  friend VIPS_CPLUSPLUS_API VImage
1623  operator%( const VImage a, const std::vector<double> b );
1624 
1625  friend VIPS_CPLUSPLUS_API VImage &
1626  operator%=( VImage &a, const VImage b );
1627  friend VIPS_CPLUSPLUS_API VImage &
1628  operator%=( VImage &a, const double b );
1629  friend VIPS_CPLUSPLUS_API VImage &
1630  operator%=( VImage &a, const std::vector<double> b );
1631 
1632  friend VIPS_CPLUSPLUS_API VImage
1633  operator<( const VImage a, const VImage b );
1634  friend VIPS_CPLUSPLUS_API VImage
1635  operator<( const double a, const VImage b );
1636  friend VIPS_CPLUSPLUS_API VImage
1637  operator<( const VImage a, const double b );
1638  friend VIPS_CPLUSPLUS_API VImage
1639  operator<( const std::vector<double> a, const VImage b );
1640  friend VIPS_CPLUSPLUS_API VImage
1641  operator<( const VImage a, const std::vector<double> b );
1642 
1643  friend VIPS_CPLUSPLUS_API VImage
1644  operator<=( const VImage a, const VImage b );
1645  friend VIPS_CPLUSPLUS_API VImage
1646  operator<=( const double a, const VImage b );
1647  friend VIPS_CPLUSPLUS_API VImage
1648  operator<=( const VImage a, const double b );
1649  friend VIPS_CPLUSPLUS_API VImage
1650  operator<=( const std::vector<double> a, const VImage b );
1651  friend VIPS_CPLUSPLUS_API VImage
1652  operator<=( const VImage a, const std::vector<double> b );
1653 
1654  friend VIPS_CPLUSPLUS_API VImage
1655  operator>( const VImage a, const VImage b );
1656  friend VIPS_CPLUSPLUS_API VImage
1657  operator>( const double a, const VImage b );
1658  friend VIPS_CPLUSPLUS_API VImage
1659  operator>( const VImage a, const double b );
1660  friend VIPS_CPLUSPLUS_API VImage
1661  operator>( const std::vector<double> a, const VImage b );
1662  friend VIPS_CPLUSPLUS_API VImage
1663  operator>( const VImage a, const std::vector<double> b );
1664 
1665  friend VIPS_CPLUSPLUS_API VImage
1666  operator>=( const VImage a, const VImage b );
1667  friend VIPS_CPLUSPLUS_API VImage
1668  operator>=( const double a, const VImage b );
1669  friend VIPS_CPLUSPLUS_API VImage
1670  operator>=( const VImage a, const double b );
1671  friend VIPS_CPLUSPLUS_API VImage
1672  operator>=( const std::vector<double> a, const VImage b );
1673  friend VIPS_CPLUSPLUS_API VImage
1674  operator>=( const VImage a, const std::vector<double> b );
1675 
1676  friend VIPS_CPLUSPLUS_API VImage
1677  operator==( const VImage a, const VImage b );
1678  friend VIPS_CPLUSPLUS_API VImage
1679  operator==( const double a, const VImage b );
1680  friend VIPS_CPLUSPLUS_API VImage
1681  operator==( const VImage a, const double b );
1682  friend VIPS_CPLUSPLUS_API VImage
1683  operator==( const std::vector<double> a, const VImage b );
1684  friend VIPS_CPLUSPLUS_API VImage
1685  operator==( const VImage a, const std::vector<double> b );
1686 
1687  friend VIPS_CPLUSPLUS_API VImage
1688  operator!=( const VImage a, const VImage b );
1689  friend VIPS_CPLUSPLUS_API VImage
1690  operator!=( const double a, const VImage b );
1691  friend VIPS_CPLUSPLUS_API VImage
1692  operator!=( const VImage a, const double b );
1693  friend VIPS_CPLUSPLUS_API VImage
1694  operator!=( const std::vector<double> a, const VImage b );
1695  friend VIPS_CPLUSPLUS_API VImage
1696  operator!=( const VImage a, const std::vector<double> b );
1697 
1698  friend VIPS_CPLUSPLUS_API VImage
1699  operator&( const VImage a, const VImage b );
1700  friend VIPS_CPLUSPLUS_API VImage
1701  operator&( const double a, const VImage b );
1702  friend VIPS_CPLUSPLUS_API VImage
1703  operator&( const VImage a, const double b );
1704  friend VIPS_CPLUSPLUS_API VImage
1705  operator&( const std::vector<double> a, const VImage b );
1706  friend VIPS_CPLUSPLUS_API VImage
1707  operator&( const VImage a, const std::vector<double> b );
1708 
1709  friend VIPS_CPLUSPLUS_API VImage &
1710  operator&=( VImage &a, const VImage b );
1711  friend VIPS_CPLUSPLUS_API VImage &
1712  operator&=( VImage &a, const double b );
1713  friend VIPS_CPLUSPLUS_API VImage &
1714  operator&=( VImage &a, const std::vector<double> b );
1715 
1716  friend VIPS_CPLUSPLUS_API VImage
1717  operator|( const VImage a, const VImage b );
1718  friend VIPS_CPLUSPLUS_API VImage
1719  operator|( const double a, const VImage b );
1720  friend VIPS_CPLUSPLUS_API VImage
1721  operator|( const VImage a, const double b );
1722  friend VIPS_CPLUSPLUS_API VImage
1723  operator|( const std::vector<double> a, const VImage b );
1724  friend VIPS_CPLUSPLUS_API VImage
1725  operator|( const VImage a, const std::vector<double> b );
1726 
1727  friend VIPS_CPLUSPLUS_API VImage &
1728  operator|=( VImage &a, const VImage b );
1729  friend VIPS_CPLUSPLUS_API VImage &
1730  operator|=( VImage &a, const double b );
1731  friend VIPS_CPLUSPLUS_API VImage &
1732  operator|=( VImage &a, const std::vector<double> b );
1733 
1734  friend VIPS_CPLUSPLUS_API VImage
1735  operator^( const VImage a, const VImage b );
1736  friend VIPS_CPLUSPLUS_API VImage
1737  operator^( const double a, const VImage b );
1738  friend VIPS_CPLUSPLUS_API VImage
1739  operator^( const VImage a, const double b );
1740  friend VIPS_CPLUSPLUS_API VImage
1741  operator^( const std::vector<double> a, const VImage b );
1742  friend VIPS_CPLUSPLUS_API VImage
1743  operator^( const VImage a, const std::vector<double> b );
1744 
1745  friend VIPS_CPLUSPLUS_API VImage &
1746  operator^=( VImage &a, const VImage b );
1747  friend VIPS_CPLUSPLUS_API VImage &
1748  operator^=( VImage &a, const double b );
1749  friend VIPS_CPLUSPLUS_API VImage &
1750  operator^=( VImage &a, const std::vector<double> b );
1751 
1752  friend VIPS_CPLUSPLUS_API VImage
1753  operator<<( const VImage a, const VImage b );
1754  friend VIPS_CPLUSPLUS_API VImage
1755  operator<<( const VImage a, const double b );
1756  friend VIPS_CPLUSPLUS_API VImage
1757  operator<<( const VImage a, const std::vector<double> b );
1758 
1759  friend VIPS_CPLUSPLUS_API VImage &
1760  operator<<=( VImage &a, const VImage b );
1761  friend VIPS_CPLUSPLUS_API VImage &
1762  operator<<=( VImage &a, const double b );
1763  friend VIPS_CPLUSPLUS_API VImage &
1764  operator<<=( VImage &a, const std::vector<double> b );
1765 
1766  friend VIPS_CPLUSPLUS_API VImage
1767  operator>>( const VImage a, const VImage b );
1768  friend VIPS_CPLUSPLUS_API VImage
1769  operator>>( const VImage a, const double b );
1770  friend VIPS_CPLUSPLUS_API VImage
1771  operator>>( const VImage a, const std::vector<double> b );
1772 
1773  friend VIPS_CPLUSPLUS_API VImage &
1774  operator>>=( VImage &a, const VImage b );
1775  friend VIPS_CPLUSPLUS_API VImage &
1776  operator>>=( VImage &a, const double b );
1777  friend VIPS_CPLUSPLUS_API VImage &
1778  operator>>=( VImage &a, const std::vector<double> b );
1779 
1780  /* Automatically generated members.
1781  *
1782  * Rebuild with:
1783  *
1784  * make vips-operators
1785  *
1786  * Then delete from here to the end of the class and paste in
1787  * vips-operators.h. We could just #include vips-operators.h, but
1788  * that confuses doxygen.
1789  */
1790 
1791 // headers for vips operations
1792 // Wed May 12 11:30:00 AM CEST 2021
1793 // this file is generated automatically, do not edit!
1794 
1800 VImage CMC2LCh( VOption *options = 0 ) const;
1801 
1807 VImage CMYK2XYZ( VOption *options = 0 ) const;
1808 
1814 VImage HSV2sRGB( VOption *options = 0 ) const;
1815 
1821 VImage LCh2CMC( VOption *options = 0 ) const;
1822 
1828 VImage LCh2Lab( VOption *options = 0 ) const;
1829 
1835 VImage Lab2LCh( VOption *options = 0 ) const;
1836 
1842 VImage Lab2LabQ( VOption *options = 0 ) const;
1843 
1849 VImage Lab2LabS( VOption *options = 0 ) const;
1850 
1860 VImage Lab2XYZ( VOption *options = 0 ) const;
1861 
1867 VImage LabQ2Lab( VOption *options = 0 ) const;
1868 
1874 VImage LabQ2LabS( VOption *options = 0 ) const;
1875 
1881 VImage LabQ2sRGB( VOption *options = 0 ) const;
1882 
1888 VImage LabS2Lab( VOption *options = 0 ) const;
1889 
1895 VImage LabS2LabQ( VOption *options = 0 ) const;
1896 
1902 VImage XYZ2CMYK( VOption *options = 0 ) const;
1903 
1913 VImage XYZ2Lab( VOption *options = 0 ) const;
1914 
1920 VImage XYZ2Yxy( VOption *options = 0 ) const;
1921 
1927 VImage XYZ2scRGB( VOption *options = 0 ) const;
1928 
1934 VImage Yxy2XYZ( VOption *options = 0 ) const;
1935 
1941 VImage abs( VOption *options = 0 ) const;
1942 
1949 VImage add( VImage right, VOption *options = 0 ) const;
1950 
1969 VImage affine( std::vector<double> matrix, VOption *options = 0 ) const;
1970 
1985 static VImage analyzeload( const char *filename, VOption *options = 0 );
1986 
2003 static VImage arrayjoin( std::vector<VImage> in, VOption *options = 0 );
2004 
2010 VImage autorot( VOption *options = 0 ) const;
2011 
2017 double avg( VOption *options = 0 ) const;
2018 
2025 VImage bandbool( VipsOperationBoolean boolean, VOption *options = 0 ) const;
2026 
2036 VImage bandfold( VOption *options = 0 ) const;
2037 
2044 static VImage bandjoin( std::vector<VImage> in, VOption *options = 0 );
2045 
2052 VImage bandjoin_const( std::vector<double> c, VOption *options = 0 ) const;
2053 
2059 VImage bandmean( VOption *options = 0 ) const;
2060 
2071 static VImage bandrank( std::vector<VImage> in, VOption *options = 0 );
2072 
2082 VImage bandunfold( VOption *options = 0 ) const;
2083 
2095 static VImage black( int width, int height, VOption *options = 0 );
2096 
2104 VImage boolean( VImage right, VipsOperationBoolean boolean, VOption *options = 0 ) const;
2105 
2113 VImage boolean_const( VipsOperationBoolean boolean, std::vector<double> c, VOption *options = 0 ) const;
2114 
2120 VImage buildlut( VOption *options = 0 ) const;
2121 
2127 VImage byteswap( VOption *options = 0 ) const;
2128 
2140 VImage cache( VOption *options = 0 ) const;
2141 
2152 VImage canny( VOption *options = 0 ) const;
2153 
2160 VImage case_image( std::vector<VImage> cases, VOption *options = 0 ) const;
2161 
2172 VImage cast( VipsBandFormat format, VOption *options = 0 ) const;
2173 
2184 VImage colourspace( VipsInterpretation space, VOption *options = 0 ) const;
2185 
2201 VImage compass( VImage mask, VOption *options = 0 ) const;
2202 
2209 VImage complex( VipsOperationComplex cmplx, VOption *options = 0 ) const;
2210 
2218 VImage complex2( VImage right, VipsOperationComplex2 cmplx, VOption *options = 0 ) const;
2219 
2226 VImage complexform( VImage right, VOption *options = 0 ) const;
2227 
2234 VImage complexget( VipsOperationComplexget get, VOption *options = 0 ) const;
2235 
2250 static VImage composite( std::vector<VImage> in, std::vector<int> mode, VOption *options = 0 );
2251 
2266 VImage composite2( VImage overlay, VipsBlendMode mode, VOption *options = 0 ) const;
2267 
2280 VImage conv( VImage mask, VOption *options = 0 ) const;
2281 
2293 VImage conva( VImage mask, VOption *options = 0 ) const;
2294 
2305 VImage convasep( VImage mask, VOption *options = 0 ) const;
2306 
2313 VImage convf( VImage mask, VOption *options = 0 ) const;
2314 
2321 VImage convi( VImage mask, VOption *options = 0 ) const;
2322 
2335 VImage convsep( VImage mask, VOption *options = 0 ) const;
2336 
2356 VImage copy( VOption *options = 0 ) const;
2357 
2364 double countlines( VipsDirection direction, VOption *options = 0 ) const;
2365 
2375 VImage crop( int left, int top, int width, int height, VOption *options = 0 ) const;
2376 
2395 static VImage csvload( const char *filename, VOption *options = 0 );
2396 
2415 static VImage csvload_source( VSource source, VOption *options = 0 );
2416 
2429 void csvsave( const char *filename, VOption *options = 0 ) const;
2430 
2443 void csvsave_target( VTarget target, VOption *options = 0 ) const;
2444 
2451 VImage dE00( VImage right, VOption *options = 0 ) const;
2452 
2459 VImage dE76( VImage right, VOption *options = 0 ) const;
2460 
2467 VImage dECMC( VImage right, VOption *options = 0 ) const;
2468 
2474 double deviate( VOption *options = 0 ) const;
2475 
2482 VImage divide( VImage right, VOption *options = 0 ) const;
2483 
2496 void draw_circle( std::vector<double> ink, int cx, int cy, int radius, VOption *options = 0 ) const;
2497 
2510 void draw_flood( std::vector<double> ink, int x, int y, VOption *options = 0 ) const;
2511 
2523 void draw_image( VImage sub, int x, int y, VOption *options = 0 ) const;
2524 
2534 void draw_line( std::vector<double> ink, int x1, int y1, int x2, int y2, VOption *options = 0 ) const;
2535 
2544 void draw_mask( std::vector<double> ink, VImage mask, int x, int y, VOption *options = 0 ) const;
2545 
2559 void draw_rect( std::vector<double> ink, int left, int top, int width, int height, VOption *options = 0 ) const;
2560 
2569 void draw_smudge( int left, int top, int width, int height, VOption *options = 0 ) const;
2570 
2600 void dzsave( const char *filename, VOption *options = 0 ) const;
2601 
2631 VipsBlob *dzsave_buffer( VOption *options = 0 ) const;
2632 
2647 VImage embed( int x, int y, int width, int height, VOption *options = 0 ) const;
2648 
2658 VImage extract_area( int left, int top, int width, int height, VOption *options = 0 ) const;
2659 
2670 VImage extract_band( int band, VOption *options = 0 ) const;
2671 
2684 static VImage eye( int width, int height, VOption *options = 0 );
2685 
2691 VImage falsecolour( VOption *options = 0 ) const;
2692 
2699 VImage fastcor( VImage ref, VOption *options = 0 ) const;
2700 
2706 VImage fill_nearest( VOption *options = 0 ) const;
2707 
2721 int find_trim( int *top, int *width, int *height, VOption *options = 0 ) const;
2722 
2737 static VImage fitsload( const char *filename, VOption *options = 0 );
2738 
2753 static VImage fitsload_source( VSource source, VOption *options = 0 );
2754 
2766 void fitssave( const char *filename, VOption *options = 0 ) const;
2767 
2778 VImage flatten( VOption *options = 0 ) const;
2779 
2786 VImage flip( VipsDirection direction, VOption *options = 0 ) const;
2787 
2793 VImage float2rad( VOption *options = 0 ) const;
2794 
2803 static VImage fractsurf( int width, int height, double fractal_dimension, VOption *options = 0 );
2804 
2811 VImage freqmult( VImage mask, VOption *options = 0 ) const;
2812 
2818 VImage fwfft( VOption *options = 0 ) const;
2819 
2829 VImage gamma( VOption *options = 0 ) const;
2830 
2842 VImage gaussblur( double sigma, VOption *options = 0 ) const;
2843 
2857 static VImage gaussmat( double sigma, double min_ampl, VOption *options = 0 );
2858 
2872 static VImage gaussnoise( int width, int height, VOption *options = 0 );
2873 
2881 std::vector<double> getpoint( int x, int y, VOption *options = 0 ) const;
2882 
2899 static VImage gifload( const char *filename, VOption *options = 0 );
2900 
2917 static VImage gifload_buffer( VipsBlob *buffer, VOption *options = 0 );
2918 
2935 static VImage gifload_source( VSource source, VOption *options = 0 );
2936 
2947 VImage globalbalance( VOption *options = 0 ) const;
2948 
2962 VImage gravity( VipsCompassDirection direction, int width, int height, VOption *options = 0 ) const;
2963 
2975 static VImage grey( int width, int height, VOption *options = 0 );
2976 
2985 VImage grid( int tile_height, int across, int down, VOption *options = 0 ) const;
2986 
3005 static VImage heifload( const char *filename, VOption *options = 0 );
3006 
3025 static VImage heifload_buffer( VipsBlob *buffer, VOption *options = 0 );
3026 
3045 static VImage heifload_source( VSource source, VOption *options = 0 );
3046 
3063 void heifsave( const char *filename, VOption *options = 0 ) const;
3064 
3081 VipsBlob *heifsave_buffer( VOption *options = 0 ) const;
3082 
3099 void heifsave_target( VTarget target, VOption *options = 0 ) const;
3100 
3106 VImage hist_cum( VOption *options = 0 ) const;
3107 
3113 double hist_entropy( VOption *options = 0 ) const;
3114 
3124 VImage hist_equal( VOption *options = 0 ) const;
3125 
3135 VImage hist_find( VOption *options = 0 ) const;
3136 
3147 VImage hist_find_indexed( VImage index, VOption *options = 0 ) const;
3148 
3158 VImage hist_find_ndim( VOption *options = 0 ) const;
3159 
3165 bool hist_ismonotonic( VOption *options = 0 ) const;
3166 
3178 VImage hist_local( int width, int height, VOption *options = 0 ) const;
3179 
3186 VImage hist_match( VImage ref, VOption *options = 0 ) const;
3187 
3193 VImage hist_norm( VOption *options = 0 ) const;
3194 
3200 VImage hist_plot( VOption *options = 0 ) const;
3201 
3213 VImage hough_circle( VOption *options = 0 ) const;
3214 
3225 VImage hough_line( VOption *options = 0 ) const;
3226 
3240 VImage icc_export( VOption *options = 0 ) const;
3241 
3255 VImage icc_import( VOption *options = 0 ) const;
3256 
3272 VImage icc_transform( const char *output_profile, VOption *options = 0 ) const;
3273 
3285 static VImage identity( VOption *options = 0 );
3286 
3298 VImage ifthenelse( VImage in1, VImage in2, VOption *options = 0 ) const;
3299 
3313 VImage insert( VImage sub, int x, int y, VOption *options = 0 ) const;
3314 
3320 VImage invert( VOption *options = 0 ) const;
3321 
3331 VImage invertlut( VOption *options = 0 ) const;
3332 
3342 VImage invfft( VOption *options = 0 ) const;
3343 
3358 VImage join( VImage in2, VipsDirection direction, VOption *options = 0 ) const;
3359 
3375 static VImage jp2kload( const char *filename, VOption *options = 0 );
3376 
3392 static VImage jp2kload_buffer( VipsBlob *buffer, VOption *options = 0 );
3393 
3409 static VImage jp2kload_source( VSource source, VOption *options = 0 );
3410 
3427 void jp2ksave( const char *filename, VOption *options = 0 ) const;
3428 
3445 VipsBlob *jp2ksave_buffer( VOption *options = 0 ) const;
3446 
3463 void jp2ksave_target( VTarget target, VOption *options = 0 ) const;
3464 
3481 static VImage jpegload( const char *filename, VOption *options = 0 );
3482 
3499 static VImage jpegload_buffer( VipsBlob *buffer, VOption *options = 0 );
3500 
3517 static VImage jpegload_source( VSource source, VOption *options = 0 );
3518 
3540 void jpegsave( const char *filename, VOption *options = 0 ) const;
3541 
3563 VipsBlob *jpegsave_buffer( VOption *options = 0 ) const;
3564 
3585 void jpegsave_mime( VOption *options = 0 ) const;
3586 
3608 void jpegsave_target( VTarget target, VOption *options = 0 ) const;
3609 
3624 static VImage jxlload( const char *filename, VOption *options = 0 );
3625 
3640 static VImage jxlload_buffer( VipsBlob *buffer, VOption *options = 0 );
3641 
3656 static VImage jxlload_source( VSource source, VOption *options = 0 );
3657 
3674 void jxlsave( const char *filename, VOption *options = 0 ) const;
3675 
3692 VipsBlob *jxlsave_buffer( VOption *options = 0 ) const;
3693 
3710 void jxlsave_target( VTarget target, VOption *options = 0 ) const;
3711 
3717 VImage labelregions( VOption *options = 0 ) const;
3718 
3730 VImage linear( std::vector<double> a, std::vector<double> b, VOption *options = 0 ) const;
3731 
3744 VImage linecache( VOption *options = 0 ) const;
3745 
3759 static VImage logmat( double sigma, double min_ampl, VOption *options = 0 );
3760 
3779 static VImage magickload( const char *filename, VOption *options = 0 );
3780 
3799 static VImage magickload_buffer( VipsBlob *buffer, VOption *options = 0 );
3800 
3816 void magicksave( const char *filename, VOption *options = 0 ) const;
3817 
3833 VipsBlob *magicksave_buffer( VOption *options = 0 ) const;
3834 
3845 VImage mapim( VImage index, VOption *options = 0 ) const;
3846 
3857 VImage maplut( VImage lut, VOption *options = 0 ) const;
3858 
3876 static VImage mask_butterworth( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 );
3877 
3897 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 = 0 );
3898 
3917 static VImage mask_butterworth_ring( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 );
3918 
3934 static VImage mask_fractal( int width, int height, double fractal_dimension, VOption *options = 0 );
3935 
3952 static VImage mask_gaussian( int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 );
3953 
3972 static VImage mask_gaussian_band( int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options = 0 );
3973 
3991 static VImage mask_gaussian_ring( int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 );
3992 
4008 static VImage mask_ideal( int width, int height, double frequency_cutoff, VOption *options = 0 );
4009 
4027 static VImage mask_ideal_band( int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = 0 );
4028 
4045 static VImage mask_ideal_ring( int width, int height, double frequency_cutoff, double ringwidth, VOption *options = 0 );
4046 
4068 VImage match( VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = 0 ) const;
4069 
4076 VImage math( VipsOperationMath math, VOption *options = 0 ) const;
4077 
4085 VImage math2( VImage right, VipsOperationMath2 math2, VOption *options = 0 ) const;
4086 
4094 VImage math2_const( VipsOperationMath2 math2, std::vector<double> c, VOption *options = 0 ) const;
4095 
4110 static VImage matload( const char *filename, VOption *options = 0 );
4111 
4117 VImage matrixinvert( VOption *options = 0 ) const;
4118 
4133 static VImage matrixload( const char *filename, VOption *options = 0 );
4134 
4149 static VImage matrixload_source( VSource source, VOption *options = 0 );
4150 
4161 void matrixprint( VOption *options = 0 ) const;
4162 
4174 void matrixsave( const char *filename, VOption *options = 0 ) const;
4175 
4187 void matrixsave_target( VTarget target, VOption *options = 0 ) const;
4188 
4198 double max( VOption *options = 0 ) const;
4199 
4214 VImage measure( int h, int v, VOption *options = 0 ) const;
4215 
4229 VImage merge( VImage sec, VipsDirection direction, int dx, int dy, VOption *options = 0 ) const;
4230 
4240 double min( VOption *options = 0 ) const;
4241 
4249 VImage morph( VImage mask, VipsOperationMorphology morph, VOption *options = 0 ) const;
4250 
4269 VImage mosaic( VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = 0 ) const;
4270 
4295 VImage mosaic1( VImage sec, VipsDirection direction, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = 0 ) const;
4296 
4306 VImage msb( VOption *options = 0 ) const;
4307 
4314 VImage multiply( VImage right, VOption *options = 0 ) const;
4315 
4330 static VImage niftiload( const char *filename, VOption *options = 0 );
4331 
4346 static VImage niftiload_source( VSource source, VOption *options = 0 );
4347 
4359 void niftisave( const char *filename, VOption *options = 0 ) const;
4360 
4375 static VImage openexrload( const char *filename, VOption *options = 0 );
4376 
4395 static VImage openslideload( const char *filename, VOption *options = 0 );
4396 
4415 static VImage openslideload_source( VSource source, VOption *options = 0 );
4416 
4436 static VImage pdfload( const char *filename, VOption *options = 0 );
4437 
4457 static VImage pdfload_buffer( VipsBlob *buffer, VOption *options = 0 );
4458 
4478 static VImage pdfload_source( VSource source, VOption *options = 0 );
4479 
4486 int percent( double percent, VOption *options = 0 ) const;
4487 
4501 static VImage perlin( int width, int height, VOption *options = 0 );
4502 
4509 VImage phasecor( VImage in2, VOption *options = 0 ) const;
4510 
4526 static VImage pngload( const char *filename, VOption *options = 0 );
4527 
4543 static VImage pngload_buffer( VipsBlob *buffer, VOption *options = 0 );
4544 
4560 static VImage pngload_source( VSource source, VOption *options = 0 );
4561 
4582 void pngsave( const char *filename, VOption *options = 0 ) const;
4583 
4604 VipsBlob *pngsave_buffer( VOption *options = 0 ) const;
4605 
4626 void pngsave_target( VTarget target, VOption *options = 0 ) const;
4627 
4642 static VImage ppmload( const char *filename, VOption *options = 0 );
4643 
4658 static VImage ppmload_source( VSource source, VOption *options = 0 );
4659 
4674 void ppmsave( const char *filename, VOption *options = 0 ) const;
4675 
4690 void ppmsave_target( VTarget target, VOption *options = 0 ) const;
4691 
4701 VImage premultiply( VOption *options = 0 ) const;
4702 
4709 VImage profile( VImage *rows, VOption *options = 0 ) const;
4710 
4717 static VipsBlob *profile_load( const char *name, VOption *options = 0 );
4718 
4725 VImage project( VImage *rows, VOption *options = 0 ) const;
4726 
4737 VImage quadratic( VImage coeff, VOption *options = 0 ) const;
4738 
4744 VImage rad2float( VOption *options = 0 ) const;
4745 
4760 static VImage radload( const char *filename, VOption *options = 0 );
4761 
4776 static VImage radload_buffer( VipsBlob *buffer, VOption *options = 0 );
4777 
4792 static VImage radload_source( VSource source, VOption *options = 0 );
4793 
4805 void radsave( const char *filename, VOption *options = 0 ) const;
4806 
4818 VipsBlob *radsave_buffer( VOption *options = 0 ) const;
4819 
4831 void radsave_target( VTarget target, VOption *options = 0 ) const;
4832 
4841 VImage rank( int width, int height, int index, VOption *options = 0 ) const;
4842 
4863 static VImage rawload( const char *filename, int width, int height, int bands, VOption *options = 0 );
4864 
4876 void rawsave( const char *filename, VOption *options = 0 ) const;
4877 
4889 void rawsave_fd( int fd, VOption *options = 0 ) const;
4890 
4897 VImage recomb( VImage m, VOption *options = 0 ) const;
4898 
4911 VImage reduce( double hshrink, double vshrink, VOption *options = 0 ) const;
4912 
4924 VImage reduceh( double hshrink, VOption *options = 0 ) const;
4925 
4937 VImage reducev( double vshrink, VOption *options = 0 ) const;
4938 
4946 VImage relational( VImage right, VipsOperationRelational relational, VOption *options = 0 ) const;
4947 
4955 VImage relational_const( VipsOperationRelational relational, std::vector<double> c, VOption *options = 0 ) const;
4956 
4963 VImage remainder( VImage right, VOption *options = 0 ) const;
4964 
4971 VImage remainder_const( std::vector<double> c, VOption *options = 0 ) const;
4972 
4980 VImage replicate( int across, int down, VOption *options = 0 ) const;
4981 
4997 VImage resize( double scale, VOption *options = 0 ) const;
4998 
5005 VImage rot( VipsAngle angle, VOption *options = 0 ) const;
5006 
5016 VImage rot45( VOption *options = 0 ) const;
5017 
5033 VImage rotate( double angle, VOption *options = 0 ) const;
5034 
5041 VImage round( VipsOperationRound round, VOption *options = 0 ) const;
5042 
5048 VImage sRGB2HSV( VOption *options = 0 ) const;
5049 
5055 VImage sRGB2scRGB( VOption *options = 0 ) const;
5056 
5066 VImage scRGB2BW( VOption *options = 0 ) const;
5067 
5073 VImage scRGB2XYZ( VOption *options = 0 ) const;
5074 
5084 VImage scRGB2sRGB( VOption *options = 0 ) const;
5085 
5096 VImage scale( VOption *options = 0 ) const;
5097 
5109 VImage sequential( VOption *options = 0 ) const;
5110 
5126 VImage sharpen( VOption *options = 0 ) const;
5127 
5135 VImage shrink( double hshrink, double vshrink, VOption *options = 0 ) const;
5136 
5143 VImage shrinkh( int hshrink, VOption *options = 0 ) const;
5144 
5151 VImage shrinkv( int vshrink, VOption *options = 0 ) const;
5152 
5158 VImage sign( VOption *options = 0 ) const;
5159 
5176 VImage similarity( VOption *options = 0 ) const;
5177 
5191 static VImage sines( int width, int height, VOption *options = 0 );
5192 
5204 VImage smartcrop( int width, int height, VOption *options = 0 ) const;
5205 
5211 VImage sobel( VOption *options = 0 ) const;
5212 
5219 VImage spcor( VImage ref, VOption *options = 0 ) const;
5220 
5226 VImage spectrum( VOption *options = 0 ) const;
5227 
5233 VImage stats( VOption *options = 0 ) const;
5234 
5249 VImage stdif( int width, int height, VOption *options = 0 ) const;
5250 
5262 VImage subsample( int xfac, int yfac, VOption *options = 0 ) const;
5263 
5270 VImage subtract( VImage right, VOption *options = 0 ) const;
5271 
5278 static VImage sum( std::vector<VImage> in, VOption *options = 0 );
5279 
5297 static VImage svgload( const char *filename, VOption *options = 0 );
5298 
5316 static VImage svgload_buffer( VipsBlob *buffer, VOption *options = 0 );
5317 
5335 static VImage svgload_source( VSource source, VOption *options = 0 );
5336 
5343 static VImage switch_image( std::vector<VImage> tests, VOption *options = 0 );
5344 
5356 static void system( const char *cmd_format, VOption *options = 0 );
5357 
5376 static VImage text( const char *text, VOption *options = 0 );
5377 
5397 static VImage thumbnail( const char *filename, int width, VOption *options = 0 );
5398 
5419 static VImage thumbnail_buffer( VipsBlob *buffer, int width, VOption *options = 0 );
5420 
5439 VImage thumbnail_image( int width, VOption *options = 0 ) const;
5440 
5461 static VImage thumbnail_source( VSource source, int width, VOption *options = 0 );
5462 
5481 static VImage tiffload( const char *filename, VOption *options = 0 );
5482 
5501 static VImage tiffload_buffer( VipsBlob *buffer, VOption *options = 0 );
5502 
5521 static VImage tiffload_source( VSource source, VOption *options = 0 );
5522 
5557 void tiffsave( const char *filename, VOption *options = 0 ) const;
5558 
5593 VipsBlob *tiffsave_buffer( VOption *options = 0 ) const;
5594 
5609 VImage tilecache( VOption *options = 0 ) const;
5610 
5629 static VImage tonelut( VOption *options = 0 );
5630 
5640 VImage transpose3d( VOption *options = 0 ) const;
5641 
5652 VImage unpremultiply( VOption *options = 0 ) const;
5653 
5668 static VImage vipsload( const char *filename, VOption *options = 0 );
5669 
5684 static VImage vipsload_source( VSource source, VOption *options = 0 );
5685 
5697 void vipssave( const char *filename, VOption *options = 0 ) const;
5698 
5710 void vipssave_target( VTarget target, VOption *options = 0 ) const;
5711 
5730 static VImage webpload( const char *filename, VOption *options = 0 );
5731 
5750 static VImage webpload_buffer( VipsBlob *buffer, VOption *options = 0 );
5751 
5770 static VImage webpload_source( VSource source, VOption *options = 0 );
5771 
5794 void webpsave( const char *filename, VOption *options = 0 ) const;
5795 
5818 VipsBlob *webpsave_buffer( VOption *options = 0 ) const;
5819 
5842 void webpsave_target( VTarget target, VOption *options = 0 ) const;
5843 
5856 static VImage worley( int width, int height, VOption *options = 0 );
5857 
5868 VImage wrap( VOption *options = 0 ) const;
5869 
5883 static VImage xyz( int width, int height, VOption *options = 0 );
5884 
5896 static VImage zone( int width, int height, VOption *options = 0 );
5897 
5905 VImage zoom( int xfac, int yfac, VOption *options = 0 ) const;
5906 };
5907 
5908 VIPS_NAMESPACE_END
5909 
5910 #endif /*VIPS_VIMAGE_H*/
Definition: VError8.h:46
Definition: VImage8.h:405
VImage HSV2sRGB(VOption *options=0) const
Definition: vips-operators.cpp:29
VImage join(VImage in2, VipsDirection direction, VOption *options=0) const
Definition: vips-operators.cpp:1657
VImage conva(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:639
VImage median(int size=3, VOption *options=0) const
Definition: VImage8.h:1211
VImage rot45(VOption *options=0) const
Definition: vips-operators.cpp:2994
static VImage magickload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1921
void set(const char *field, double *value, int n)
Definition: VImage8.h:609
VImage erode(VImage mask, VOption *options=0) const
Definition: VImage8.h:1201
VImage canny(VOption *options=0) const
Definition: vips-operators.cpp:482
static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options=0)
Definition: vips-operators.cpp:2134
double xres() const
Definition: VImage8.h:508
VipsBlob * tiffsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:3484
static VImage sines(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3192
VImage XYZ2Lab(VOption *options=0) const
Definition: vips-operators.cpp:185
static VImage new_from_memory(void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage8.h:910
VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options=0) const
Definition: vips-operators.cpp:2308
VImage quadratic(VImage coeff, VOption *options=0) const
Definition: vips-operators.cpp:2712
VImage relational_const(VipsOperationRelational relational, std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:2914
VImage relational(VImage right, VipsOperationRelational relational, VOption *options=0) const
Definition: vips-operators.cpp:2900
VImage math2(VImage right, VipsOperationMath2 math2, VOption *options=0) const
Definition: vips-operators.cpp:2183
static VImage pdfload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2507
VImage shrinkh(int hshrink, VOption *options=0) const
Definition: vips-operators.cpp:3142
VImage sequential(VOption *options=0) const
Definition: vips-operators.cpp:3104
VImage hist_plot(VOption *options=0) const
Definition: vips-operators.cpp:1508
static void call(const char *operation_name, VOption *options=0)
Definition: VImage.cpp:560
int get_int(const char *field) const
Definition: VImage8.h:677
void set(const char *field, int *value, int n)
Definition: VImage8.h:586
static VImage new_matrixv(int width, int height,...)
Definition: VImage.cpp:667
VImage crop(int left, int top, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:729
VImage bandmean(VOption *options=0) const
Definition: vips-operators.cpp:369
void set(const char *field, std::vector< int > value)
Definition: VImage8.h:597
VImage Lab2LabQ(VOption *options=0) const
Definition: vips-operators.cpp:77
VImage LabQ2sRGB(VOption *options=0) const
Definition: vips-operators.cpp:137
VImage smartcrop(int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:3205
VImage bandjoin(double other, VOption *options=0) const
Definition: VImage8.h:1107
static VImage csvload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:757
VImage LCh2CMC(VOption *options=0) const
Definition: vips-operators.cpp:41
static VImage mask_gaussian_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, double amplitude_cutoff, VOption *options=0)
Definition: vips-operators.cpp:2071
VImage pow(VImage other, VOption *options=0) const
Definition: VImage8.h:1418
VImage CMYK2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:17
VImage hist_local(int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:1469
VImage autorot(VOption *options=0) const
Definition: vips-operators.cpp:295
VImage tilecache(VOption *options=0) const
Definition: vips-operators.cpp:3496
VImage thumbnail_image(int width, VOption *options=0) const
Definition: vips-operators.cpp:3414
VipsBlob * magicksave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1953
VImage dE76(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:798
static VImage jpegload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1747
VImage fill_nearest(VOption *options=0) const
Definition: vips-operators.cpp:1029
int percent(double percent, VOption *options=0) const
Definition: vips-operators.cpp:2519
static VImage niftiload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2415
static VImage new_from_source(VSource source, const char *option_string, VOption *options=0)
Definition: VImage.cpp:623
static VImage webpload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:3607
static VImage black(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:405
VImage scRGB2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:3068
VImage colourspace(VipsInterpretation space, VOption *options=0) const
Definition: vips-operators.cpp:520
static VImage rawload(const char *filename, int width, int height, int bands, VOption *options=0)
Definition: vips-operators.cpp:2816
VipsBlob * dzsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:934
static VImage vipsload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3543
VImage gamma(VOption *options=0) const
Definition: vips-operators.cpp:1164
VImage transpose3d(VOption *options=0) const
Definition: vips-operators.cpp:3519
VImage scRGB2sRGB(VOption *options=0) const
Definition: vips-operators.cpp:3080
VImage pow(double other, VOption *options=0) const
Definition: VImage8.h:1427
VImage floor(VOption *options=0) const
Definition: VImage8.h:1220
static VImage new_memory()
Definition: VImage8.h:844
VImage conv(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:626
static VImage niftiload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2427
VImage divide(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:836
double hist_entropy(VOption *options=0) const
Definition: vips-operators.cpp:1396
bool has_alpha() const
Definition: VImage8.h:544
void set(const char *field, int value)
Definition: VImage8.h:575
VImage similarity(VOption *options=0) const
Definition: vips-operators.cpp:3180
static VImage gifload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1253
VImage grid(int tile_height, int across, int down, VOption *options=0) const
Definition: vips-operators.cpp:1305
VImage XYZ2CMYK(VOption *options=0) const
Definition: vips-operators.cpp:173
void jxlsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:1862
VImage scRGB2BW(VOption *options=0) const
Definition: vips-operators.cpp:3056
VImage ifthenelse(double th, VImage el, VOption *options=0) const
Definition: VImage8.h:1511
VImage case_image(std::vector< VImage > cases, VOption *options=0) const
Definition: vips-operators.cpp:494
void draw_line(std::vector< double > ink, int x1, int y1, int x2, int y2, VOption *options=0) const
Definition: vips-operators.cpp:880
void jpegsave_mime(VOption *options=0) const
Definition: vips-operators.cpp:1791
VImage Lab2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:101
static void call_option_string(const char *operation_name, const char *option_string, VOption *options=0)
Definition: VImage.cpp:506
VImage shrink(double hshrink, double vshrink, VOption *options=0) const
Definition: vips-operators.cpp:3128
VImage maplut(VImage lut, VOption *options=0) const
Definition: vips-operators.cpp:1978
VImage write(VImage out) const
Definition: VImage.cpp:685
VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:1277
VImage sharpen(VOption *options=0) const
Definition: vips-operators.cpp:3116
std::vector< double > get_array_double(const char *field) const
Definition: VImage8.h:741
VImage bandand(VOption *options=0) const
Definition: VImage8.h:1250
VImage log10(VOption *options=0) const
Definition: VImage8.h:1391
VImage bandjoin(std::vector< double > other, VOption *options=0) const
Definition: VImage8.h:1117
VImage dilate(VImage mask, VOption *options=0) const
Definition: VImage8.h:1189
static VImage heifload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1344
VImage reduceh(double hshrink, VOption *options=0) const
Definition: vips-operators.cpp:2874
VImage freqmult(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:1139
void vipssave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:3567
static VImage radload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2761
VImage invert(VOption *options=0) const
Definition: vips-operators.cpp:1621
VImage Lab2LabS(VOption *options=0) const
Definition: vips-operators.cpp:89
VImage stdif(int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:3268
static VImage xyz(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3672
VImage new_from_image(double pixel) const
Definition: VImage8.h:984
static VImage svgload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3321
VImage math(VipsOperationMath math, VOption *options=0) const
Definition: vips-operators.cpp:2170
void radsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2793
VImage math2_const(VipsOperationMath2 math2, std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:2197
VImage invfft(VOption *options=0) const
Definition: vips-operators.cpp:1645
VImage convi(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:678
static VImage matload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2211
VImage phasecor(VImage in2, VOption *options=0) const
Definition: vips-operators.cpp:2545
bool hist_ismonotonic(VOption *options=0) const
Definition: vips-operators.cpp:1457
const char * filename() const
Definition: VImage8.h:554
VImage complex(VipsOperationComplex cmplx, VOption *options=0) const
Definition: vips-operators.cpp:546
VipsBlob * jpegsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1779
VImage hist_find_ndim(VOption *options=0) const
Definition: vips-operators.cpp:1445
VImage complexget(VipsOperationComplexget get, VOption *options=0) const
Definition: vips-operators.cpp:586
VImage XYZ2Yxy(VOption *options=0) const
Definition: vips-operators.cpp:197
void heifsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1356
static VImage vipsload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:3555
static VImage tonelut(VOption *options=0)
Definition: vips-operators.cpp:3508
VImage convf(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:665
VipsCoding coding() const
Definition: VImage8.h:479
static VImage pdfload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2483
VImage dECMC(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:811
static VImage tiffload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:3452
static VImage fitsload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1056
void write_to_target(const char *suffix, VTarget target, VOption *options=0) const
Definition: VImage.cpp:745
static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=0)
Definition: vips-operators.cpp:2088
static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options=0)
Definition: vips-operators.cpp:1125
void rawsave_fd(int fd, VOption *options=0) const
Definition: vips-operators.cpp:2839
void jxlsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1842
VImage sign(VOption *options=0) const
Definition: vips-operators.cpp:3168
VImage zoom(int xfac, int yfac, VOption *options=0) const
Definition: vips-operators.cpp:3698
void jp2ksave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:1727
static VImage logmat(double sigma, double min_ampl, VOption *options=0)
Definition: vips-operators.cpp:1908
void write_to_file(const char *name, VOption *options=0) const
Definition: VImage.cpp:694
void draw_image(VImage sub, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:870
VImage rank(int width, int height, int index, VOption *options=0) const
Definition: vips-operators.cpp:2801
VImage exp10(VOption *options=0) const
Definition: VImage8.h:1409
static VImage worley(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3647
VImage icc_import(VOption *options=0) const
Definition: vips-operators.cpp:1556
void draw_smudge(int left, int top, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:915
static VImage zone(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3685
VImage complexform(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:573
VImage fwfft(VOption *options=0) const
Definition: vips-operators.cpp:1152
VImage labelregions(VOption *options=0) const
Definition: vips-operators.cpp:1870
VImage subtract(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:3296
static VImage jpegload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1735
static VImage jp2kload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1683
void matrixsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2266
static VImage svgload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:3333
static VImage new_from_file(const char *name, VOption *options=0)
Definition: VImage.cpp:566
static VImage webpload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:3595
VImage sin(VOption *options=0) const
Definition: VImage8.h:1328
static void system(const char *cmd_format, VOption *options=0)
Definition: vips-operators.cpp:3369
std::vector< double > getpoint(int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:1215
VImage LabS2Lab(VOption *options=0) const
Definition: vips-operators.cpp:149
VImage hist_find(VOption *options=0) const
Definition: vips-operators.cpp:1420
VImage hist_equal(VOption *options=0) const
Definition: vips-operators.cpp:1408
static VImage jp2kload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1671
void webpsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:3639
VImage hough_line(VOption *options=0) const
Definition: vips-operators.cpp:1532
VImage rint(VOption *options=0) const
Definition: VImage8.h:1238
double avg(VOption *options=0) const
Definition: vips-operators.cpp:307
static VImage grey(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:1292
void niftisave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2439
VImage rot(VipsAngle angle, VOption *options=0) const
Definition: vips-operators.cpp:2981
void set(const char *field, VipsCallbackFn free_fn, void *data, size_t length)
Definition: VImage8.h:654
VImage round(VipsOperationRound round, VOption *options=0) const
Definition: vips-operators.cpp:3019
static VImage eye(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:991
VipsBlob * heifsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1364
VImage new_from_image(std::vector< double > pixel) const
Definition: VImage8.h:968
VImage conj(VOption *options=0) const
Definition: VImage8.h:1319
static VOption * option()
Definition: VImage8.h:820
void fitssave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1080
VImage sRGB2HSV(VOption *options=0) const
Definition: vips-operators.cpp:3032
static VImage ppmload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2622
void heifsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:1376
VImage hist_norm(VOption *options=0) const
Definition: vips-operators.cpp:1496
VipsBlob * webpsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:3627
VImage buildlut(VOption *options=0) const
Definition: vips-operators.cpp:446
VipsBlob * jxlsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1850
VImage mosaic1(VImage sec, VipsDirection direction, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options=0) const
Definition: vips-operators.cpp:2368
VImage log(VOption *options=0) const
Definition: VImage8.h:1382
static VImage heifload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1320
VImage fliphor(VOption *options=0) const
Definition: VImage8.h:1142
void pngsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2614
void jp2ksave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1707
VImage hist_match(VImage ref, VOption *options=0) const
Definition: vips-operators.cpp:1483
VImage sobel(VOption *options=0) const
Definition: vips-operators.cpp:3219
void write_to_buffer(const char *suffix, void **buf, size_t *size, VOption *options=0) const
Definition: VImage.cpp:713
VImage LabQ2Lab(VOption *options=0) const
Definition: vips-operators.cpp:113
VImage asin(VOption *options=0) const
Definition: VImage8.h:1355
VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options=0) const
Definition: vips-operators.cpp:559
VImage abs(VOption *options=0) const
Definition: vips-operators.cpp:233
VImage copy_memory() const
Definition: VImage8.h:995
VImage atan(VOption *options=0) const
Definition: VImage8.h:1373
static VImage heifload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1332
static VImage pngload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2582
static VImage jpegload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1759
VImage bandor(VOption *options=0) const
Definition: VImage8.h:1262
void get_array_double(const char *field, double **out, int *n) const
Definition: VImage8.h:728
void rawsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2831
VImage remainder_const(std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:2941
VImage ifthenelse(VImage th, std::vector< double > el, VOption *options=0) const
Definition: VImage8.h:1488
static VipsBlob * profile_load(const char *name, VOption *options=0)
Definition: vips-operators.cpp:2687
bool remove(const char *name) const
Definition: VImage8.h:811
VImage falsecolour(VOption *options=0) const
Definition: vips-operators.cpp:1004
static VImage mask_ideal_band(int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options=0)
Definition: vips-operators.cpp:2118
VImage rotate(double angle, VOption *options=0) const
Definition: vips-operators.cpp:3006
VImage scale(VOption *options=0) const
Definition: vips-operators.cpp:3092
static VImage arrayjoin(std::vector< VImage > in, VOption *options=0)
Definition: vips-operators.cpp:283
void draw_rect(std::vector< double > ink, int left, int top, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:903
VImage hough_circle(VOption *options=0) const
Definition: vips-operators.cpp:1520
VImage fastcor(VImage ref, VOption *options=0) const
Definition: vips-operators.cpp:1016
VImage linear(double a, std::vector< double > b, VOption *options=0) const
Definition: VImage8.h:1087
std::complex< double > minpos(VOption *options=0) const
Definition: VImage.cpp:798
static VImage sum(std::vector< VImage > in, VOption *options=0)
Definition: vips-operators.cpp:3309
VImage multiply(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:2402
static VImage analyzeload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:271
static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options=0)
Definition: vips-operators.cpp:2042
void csvsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:777
void draw_mask(std::vector< double > ink, VImage mask, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:892
double yres() const
Definition: VImage8.h:517
void set(const char *field, std::vector< double > value)
Definition: VImage8.h:620
VImage boolean_const(VipsOperationBoolean boolean, std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:432
static VImage new_from_memory_steal(void *data, size_t size, int width, int height, int bands, VipsBandFormat format)
Definition: VImage.cpp:645
VImage sRGB2scRGB(VOption *options=0) const
Definition: vips-operators.cpp:3044
void webpsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:3619
VImage rad2float(VOption *options=0) const
Definition: vips-operators.cpp:2725
VImage exp(VOption *options=0) const
Definition: VImage8.h:1400
int find_trim(int *top, int *width, int *height, VOption *options=0) const
Definition: vips-operators.cpp:1041
VImage ceil(VOption *options=0) const
Definition: VImage8.h:1229
static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options=0)
Definition: vips-operators.cpp:2104
VImage reduce(double hshrink, double vshrink, VOption *options=0) const
Definition: vips-operators.cpp:2860
static VImage pdfload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:2495
VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options=0) const
Definition: vips-operators.cpp:418
static VImage openslideload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2471
int yoffset() const
Definition: VImage8.h:535
VipsInterpretation interpretation() const
Definition: VImage8.h:489
VImage rot270(VOption *options=0) const
Definition: VImage8.h:1178
VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options=0) const
Definition: vips-operators.cpp:2350
int height() const
Definition: VImage8.h:452
void jpegsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:1798
void set(const char *field, const char *value)
Definition: VImage8.h:641
VImage stats(VOption *options=0) const
Definition: vips-operators.cpp:3256
const void * get_blob(const char *field, size_t *length) const
Definition: VImage8.h:795
void ppmsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2646
double max(VOption *options=0) const
Definition: vips-operators.cpp:2282
VImage shrinkv(int vshrink, VOption *options=0) const
Definition: vips-operators.cpp:3155
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=0)
Definition: vips-operators.cpp:2007
static VImage pngload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:2570
void jpegsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1771
GType get_typeof(const char *field) const
Definition: VImage8.h:666
static VImage tiffload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:3464
VImage ifthenelse(double th, double el, VOption *options=0) const
Definition: VImage8.h:1531
void tiffsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:3476
static VImage pngload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2558
VImage imag(VOption *options=0) const
Definition: VImage8.h:1292
VipsBlob * jp2ksave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1715
VImage linecache(VOption *options=0) const
Definition: vips-operators.cpp:1896
VImage premultiply(VOption *options=0) const
Definition: vips-operators.cpp:2662
VImage composite(VImage other, VipsBlendMode mode, VOption *options=0) const
Definition: VImage.cpp:787
static VImage new_matrix(int width, int height, double *array, int size)
Definition: VImage8.h:945
VipsInterpretation guess_interpretation() const
Definition: VImage8.h:499
VImage cache(VOption *options=0) const
Definition: vips-operators.cpp:470
double get_double(const char *field) const
Definition: VImage8.h:761
static VImage jp2kload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1695
VImage byteswap(VOption *options=0) const
Definition: vips-operators.cpp:458
VImage remainder(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:2928
VImage wop(double other, VOption *options=0) const
Definition: VImage8.h:1456
int bands() const
Definition: VImage8.h:461
static VImage openexrload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2447
static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options=0)
Definition: vips-operators.cpp:2056
VImage icc_export(VOption *options=0) const
Definition: vips-operators.cpp:1544
VImage extract_band(int band, VOption *options=0) const
Definition: vips-operators.cpp:978
VImage unpremultiply(VOption *options=0) const
Definition: vips-operators.cpp:3531
VImage globalbalance(VOption *options=0) const
Definition: vips-operators.cpp:1265
VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options=0) const
Definition: vips-operators.cpp:2336
VImage LabS2LabQ(VOption *options=0) const
Definition: vips-operators.cpp:161
static VImage jxlload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1806
VImage acos(VOption *options=0) const
Definition: VImage8.h:1364
static VImage ppmload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2634
VImage CMC2LCh(VOption *options=0) const
Definition: vips-operators.cpp:5
static VImage webpload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3583
double deviate(VOption *options=0) const
Definition: vips-operators.cpp:824
VImage insert(VImage sub, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:1606
VImage ifthenelse(std::vector< double > th, VImage el, VOption *options=0) const
Definition: VImage8.h:1477
VImage bandjoin_const(std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:356
VImage spectrum(VOption *options=0) const
Definition: vips-operators.cpp:3244
VImage()
Definition: VImage8.h:423
VImage dE00(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:785
void matrixprint(VOption *options=0) const
Definition: vips-operators.cpp:2259
std::complex< double > maxpos(VOption *options=0) const
Definition: VImage.cpp:811
static VImage new_temp_file(const char *file_format=".v")
Definition: VImage8.h:854
VImage flip(VipsDirection direction, VOption *options=0) const
Definition: vips-operators.cpp:1100
static VImage gaussnoise(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:1202
double countlines(VipsDirection direction, VOption *options=0) const
Definition: vips-operators.cpp:716
VImage linear(double a, double b, VOption *options=0) const
Definition: VImage8.h:1064
void * write_to_memory(size_t *size) const
Definition: VImage8.h:1047
void ppmsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2654
VImage wop(VImage other, VOption *options=0) const
Definition: VImage8.h:1447
void set(const char *field, double value)
Definition: VImage8.h:630
VImage Yxy2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:221
static VImage new_matrix(int width, int height)
Definition: VImage.cpp:661
void magicksave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1945
static VImage perlin(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:2532
VImage(VipsImage *image, VSteal steal=STEAL)
Definition: VImage8.h:415
VImage bandfold(VOption *options=0) const
Definition: vips-operators.cpp:332
VImage match(VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options=0) const
Definition: vips-operators.cpp:2149
void draw_flood(std::vector< double > ink, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:860
VImage rot90(VOption *options=0) const
Definition: VImage8.h:1160
static VImage radload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2737
VImage copy(VOption *options=0) const
Definition: vips-operators.cpp:704
VImage real(VOption *options=0) const
Definition: VImage8.h:1283
static VImage jxlload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1818
std::vector< int > get_array_int(const char *field) const
Definition: VImage8.h:707
static VImage matrixload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2247
VImage spcor(VImage ref, VOption *options=0) const
Definition: vips-operators.cpp:3231
VImage wop(std::vector< double > other, VOption *options=0) const
Definition: VImage8.h:1466
static VImage svgload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:3345
VImage flipver(VOption *options=0) const
Definition: VImage8.h:1151
VImage Lab2LCh(VOption *options=0) const
Definition: vips-operators.cpp:65
void draw_circle(std::vector< double > ink, int cx, int cy, int radius, VOption *options=0) const
Definition: vips-operators.cpp:849
VImage extract_area(int left, int top, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:962
VImage profile(VImage *rows, VOption *options=0) const
Definition: vips-operators.cpp:2674
void vipssave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:3575
VImage hist_find_indexed(VImage index, VOption *options=0) const
Definition: vips-operators.cpp:1432
VImage ifthenelse(std::vector< double > th, std::vector< double > el, VOption *options=0) const
Definition: VImage8.h:1499
std::vector< VImage > bandsplit(VOption *options=0) const
Definition: VImage.cpp:767
VImage rect(VOption *options=0) const
Definition: VImage8.h:1310
const void * data() const
Definition: VImage8.h:566
VipsBandFormat format() const
Definition: VImage8.h:470
static VImage thumbnail_source(VSource source, int width, VOption *options=0)
Definition: vips-operators.cpp:3427
VImage mapim(VImage index, VOption *options=0) const
Definition: vips-operators.cpp:1965
VImage recomb(VImage m, VOption *options=0) const
Definition: vips-operators.cpp:2847
void get_array_int(const char *field, int **out, int *n) const
Definition: VImage8.h:694
VImage rot180(VOption *options=0) const
Definition: VImage8.h:1169
VImage icc_transform(const char *output_profile, VOption *options=0) const
Definition: vips-operators.cpp:1568
static VImage new_from_buffer(const void *buf, size_t len, const char *option_string, VOption *options=0)
Definition: VImage.cpp:589
static VImage thumbnail(const char *filename, int width, VOption *options=0)
Definition: vips-operators.cpp:3388
void pngsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2594
static VImage gifload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1229
static VImage radload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:2749
static VImage gifload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1241
VImage embed(int x, int y, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:946
const char * get_string(const char *field) const
Definition: VImage8.h:778
static VImage openslideload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2459
void matrixsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2274
int width() const
Definition: VImage8.h:443
VImage bandbool(VipsOperationBoolean boolean, VOption *options=0) const
Definition: vips-operators.cpp:319
VImage convasep(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:652
VImage float2rad(VOption *options=0) const
Definition: vips-operators.cpp:1113
double min(VOption *options=0) const
Definition: vips-operators.cpp:2324
VImage pow(std::vector< double > other, VOption *options=0) const
Definition: VImage8.h:1437
VImage cos(VOption *options=0) const
Definition: VImage8.h:1337
VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options=0) const
Definition: vips-operators.cpp:612
static VImage switch_image(std::vector< VImage > tests, VOption *options=0)
Definition: vips-operators.cpp:3357
static VImage bandrank(std::vector< VImage > in, VOption *options=0)
Definition: vips-operators.cpp:381
VImage replicate(int across, int down, VOption *options=0) const
Definition: vips-operators.cpp:2954
VipsBlob * radsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:2781
VImage bandunfold(VOption *options=0) const
Definition: vips-operators.cpp:393
static VImage gaussmat(double sigma, double min_ampl, VOption *options=0)
Definition: vips-operators.cpp:1189
static VImage matrixload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2235
VipsBlob * pngsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:2602
static VImage tiffload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3440
int xoffset() const
Definition: VImage8.h:526
VImage affine(std::vector< double > matrix, VOption *options=0) const
Definition: vips-operators.cpp:258
VImage tan(VOption *options=0) const
Definition: VImage8.h:1346
VImage matrixinvert(VOption *options=0) const
Definition: vips-operators.cpp:2223
static VImage magickload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1933
VImage linear(std::vector< double > a, double b, VOption *options=0) const
Definition: VImage8.h:1076
VImage add(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:245
VImage LabQ2LabS(VOption *options=0) const
Definition: vips-operators.cpp:125
static VImage csvload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:745
VImage LCh2Lab(VOption *options=0) const
Definition: vips-operators.cpp:53
VImage hist_cum(VOption *options=0) const
Definition: vips-operators.cpp:1384
void csvsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:769
VImage cast(VipsBandFormat format, VOption *options=0) const
Definition: vips-operators.cpp:507
static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options=0)
Definition: vips-operators.cpp:1991
static VImage text(const char *text, VOption *options=0)
Definition: vips-operators.cpp:3376
static VImage fitsload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1068
VipsImage * get_image() const
Definition: VImage8.h:434
VImage msb(VOption *options=0) const
Definition: vips-operators.cpp:2390
static VImage identity(VOption *options=0)
Definition: vips-operators.cpp:1581
VImage flatten(VOption *options=0) const
Definition: vips-operators.cpp:1088
VImage project(VImage *rows, VOption *options=0) const
Definition: vips-operators.cpp:2699
VImage bandeor(VOption *options=0) const
Definition: VImage8.h:1274
VImage wrap(VOption *options=0) const
Definition: vips-operators.cpp:3660
VImage convsep(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:691
VImage reducev(double vshrink, VOption *options=0) const
Definition: vips-operators.cpp:2887
static VImage jxlload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1830
void radsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2773
VImage XYZ2scRGB(VOption *options=0) const
Definition: vips-operators.cpp:209
VImage gaussblur(double sigma, VOption *options=0) const
Definition: vips-operators.cpp:1176
VImage invertlut(VOption *options=0) const
Definition: vips-operators.cpp:1633
static VImage thumbnail_buffer(VipsBlob *buffer, int width, VOption *options=0)
Definition: vips-operators.cpp:3401
VImage polar(VOption *options=0) const
Definition: VImage8.h:1301
VImage bandjoin(VImage other, VOption *options=0) const
Definition: VImage.cpp:778
VImage resize(double scale, VOption *options=0) const
Definition: vips-operators.cpp:2968
VImage ifthenelse(VImage th, double el, VOption *options=0) const
Definition: VImage8.h:1521
void dzsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:926
VImage compass(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:533
VImage measure(int h, int v, VOption *options=0) const
Definition: vips-operators.cpp:2294
static VImage mask_butterworth_ring(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=0)
Definition: vips-operators.cpp:2025
VImage subsample(int xfac, int yfac, VOption *options=0) const
Definition: vips-operators.cpp:3282
Definition: VInterpolate8.h:46
Definition: VImage8.h:68
VObject(VipsObject *new_vobject, VSteal steal=STEAL)
Definition: VImage8.h:80
VipsObject * get_object() const
Definition: VImage8.h:172
bool is_null() const
Definition: VImage8.h:183
Definition: VImage8.h:217
void get_operation(VipsOperation *operation)
Definition: VImage.cpp:451
VOption * set(const char *name, bool value)
Definition: VImage.cpp:123
void set_operation(VipsOperation *operation)
Definition: VImage.cpp:429
Definition: VConnection8.h:46
Definition: VConnection8.h:107