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 
52 enum VSteal {
53  NOSTEAL = 0,
54  STEAL = 1
55 };
56 
57 /* A smart VipsObject pointer class ... use g_object_ref()/_unref() for
58  * lifetime management.
59  */
60 class VObject
61 {
62 private:
63  // can be NULL, see eg. VObject()
64  VipsObject *vobject;
65 
66 public:
67  VObject( VipsObject *new_vobject, VSteal steal = STEAL ) :
68  vobject( new_vobject )
69  {
70  // we allow NULL init, eg. "VImage a;"
71  g_assert( !new_vobject ||
72  VIPS_IS_OBJECT( new_vobject ) );
73 
74 #ifdef VIPS_DEBUG_VERBOSE
75  printf( "VObject constructor, obj = %p, steal = %d\n",
76  new_vobject, steal );
77  if( new_vobject ) {
78  printf( " obj " );
79  vips_object_print_name( VIPS_OBJECT( new_vobject ) );
80  printf( "\n" );
81  }
82 #endif /*VIPS_DEBUG_VERBOSE*/
83 
84  if( !steal && vobject ) {
85 #ifdef VIPS_DEBUG_VERBOSE
86  printf( " reffing object\n" );
87 #endif /*VIPS_DEBUG_VERBOSE*/
88  g_object_ref( vobject );
89  }
90  }
91 
92  VObject() :
93  vobject( 0 )
94  {
95  }
96 
97  // copy constructor
98  VObject( const VObject &a ) :
99  vobject( a.vobject )
100  {
101  g_assert( !vobject ||
102  VIPS_IS_OBJECT( vobject ) );
103 
104 #ifdef VIPS_DEBUG_VERBOSE
105  printf( "VObject copy constructor, obj = %p\n",
106  vobject );
107  printf( " reffing object\n" );
108 #endif /*VIPS_DEBUG_VERBOSE*/
109  if( vobject )
110  g_object_ref( vobject );
111  }
112 
113  // assignment ... we must delete the old ref
114  VObject &operator=( const VObject &a )
115  {
116 #ifdef VIPS_DEBUG_VERBOSE
117  printf( "VObject assignment\n" );
118  printf( " reffing %p\n", a.vobject );
119  printf( " unreffing %p\n", vobject );
120 #endif /*VIPS_DEBUG_VERBOSE*/
121 
122  g_assert( !vobject ||
123  VIPS_IS_OBJECT( vobject ) );
124  g_assert( !a.vobject ||
125  VIPS_IS_OBJECT( a.vobject ) );
126 
127  // delete the old ref at the end ... otherwise "a = a;" could
128  // unref before reffing again
129  if( a.vobject )
130  g_object_ref( a.vobject );
131  if( vobject )
132  g_object_unref( vobject );
133  vobject = a.vobject;
134 
135  return( *this );
136  }
137 
138  // this mustn't be virtual: we want this class to only be a pointer,
139  // no vtable allowed
140  ~VObject()
141  {
142 #ifdef VIPS_DEBUG_VERBOSE
143  printf( "VObject destructor\n" );
144  printf( " unreffing %p\n", vobject );
145 #endif /*VIPS_DEBUG_VERBOSE*/
146 
147  g_assert( !vobject ||
148  VIPS_IS_OBJECT( vobject ) );
149 
150  if( vobject )
151  g_object_unref( vobject );
152  }
153 
154  VipsObject *get_object() const
155  {
156  g_assert( !vobject ||
157  VIPS_IS_OBJECT( vobject ) );
158 
159  return( vobject );
160  }
161 
162  bool is_null() const
163  {
164  return vobject == 0;
165  }
166 
167 };
168 
169 class VIPS_CPLUSPLUS_API VImage;
170 class VIPS_CPLUSPLUS_API VInterpolate;
171 class VIPS_CPLUSPLUS_API VSource;
172 class VIPS_CPLUSPLUS_API VTarget;
173 class VIPS_CPLUSPLUS_API VOption;
174 
175 class VOption
176 {
177 private:
178  struct Pair {
179  const char *name;
180 
181  // the thing we pass to and from our caller
182  GValue value;
183 
184  // an input or output parameter ... we guess the direction
185  // from the arg to set()
186  bool input;
187 
188  // the pointer we write output values to
189  union {
190  bool *vbool;
191  int *vint;
192  double *vdouble;
193  VImage *vimage;
194  std::vector<double> *vvector;
195  VipsBlob **vblob;
196  };
197 
198  Pair( const char *name ) :
199  name( name ), input( false ), vimage( 0 )
200  {
201  // argh = {0} won't work wil vanilla C++
202  memset( &value, 0, sizeof( GValue ) );
203  }
204 
205  ~Pair()
206  {
207  g_value_unset( &value );
208  }
209  };
210 
211  std::list<Pair *> options;
212 
213 public:
214  VOption()
215  {
216  }
217 
218  virtual ~VOption();
219 
220  VOption *set( const char *name, bool value );
221  VOption *set( const char *name, int value );
222  VOption *set( const char *name, double value );
223  VOption *set( const char *name, const char *value );
224  VOption *set( const char *name, const VImage value );
225  VOption *set( const char *name, const VInterpolate value );
226  VOption *set( const char *name, const VSource value );
227  VOption *set( const char *name, const VTarget value );
228  VOption *set( const char *name, std::vector<VImage> value );
229  VOption *set( const char *name, std::vector<double> value );
230  VOption *set( const char *name, std::vector<int> value );
231  VOption *set( const char *name, VipsBlob *value );
232 
233  VOption *set( const char *name, bool *value );
234  VOption *set( const char *name, int *value );
235  VOption *set( const char *name, double *value );
236  VOption *set( const char *name, VImage *value );
237  VOption *set( const char *name, std::vector<double> *value );
238  VOption *set( const char *name, VipsBlob **blob );
239 
240  void set_operation( VipsOperation *operation );
241  void get_operation( VipsOperation *operation );
242 
243 };
244 
246 {
247 public:
248  using VObject::is_null;
249 
250  VImage( VipsImage *image, VSteal steal = STEAL ) :
251  VObject( (VipsObject *) image, steal )
252  {
253  }
254 
255  // an empty (NULL) VImage, eg. "VImage a;"
256  VImage() :
257  VObject( 0 )
258  {
259  }
260 
261  VipsImage *
262  get_image() const
263  {
264  return( (VipsImage *) VObject::get_object() );
265  }
266 
267  int
268  width() const
269  {
270  return( vips_image_get_width( get_image() ) );
271  }
272 
273  int
274  height() const
275  {
276  return( vips_image_get_height( get_image() ) );
277  }
278 
279  int
280  bands() const
281  {
282  return( vips_image_get_bands( get_image() ) );
283  }
284 
285  VipsBandFormat
286  format() const
287  {
288  return( vips_image_get_format( get_image() ) );
289  }
290 
291  VipsCoding
292  coding() const
293  {
294  return( vips_image_get_coding( get_image() ) );
295  }
296 
297  VipsInterpretation
298  interpretation() const
299  {
300  return( vips_image_get_interpretation( get_image() ) );
301  }
302 
303  VipsInterpretation
304  guess_interpretation() const
305  {
306  return( vips_image_guess_interpretation( get_image() ) );
307  }
308 
309  double
310  xres() const
311  {
312  return( vips_image_get_xres( get_image() ) );
313  }
314 
315  double
316  yres() const
317  {
318  return( vips_image_get_yres( get_image() ) );
319  }
320 
321  int
322  xoffset() const
323  {
324  return( vips_image_get_xoffset( get_image() ) );
325  }
326 
327  int
328  yoffset() const
329  {
330  return( vips_image_get_yoffset( get_image() ) );
331  }
332 
333  bool
334  has_alpha() const
335  {
336  return( vips_image_hasalpha( get_image() ) );
337  }
338 
339  const char *
340  filename() const
341  {
342  return( vips_image_get_filename( get_image() ) );
343  }
344 
345  const void *
346  data() const
347  {
348  return( vips_image_get_data( get_image() ) );
349  }
350 
351  void
352  set( const char *field, int value )
353  {
354  vips_image_set_int( this->get_image(), field, value );
355  }
356 
357  void
358  set( const char *field, int *value, int n )
359  {
360  vips_image_set_array_int( this->get_image(), field, value, n );
361  }
362 
363  void
364  set( const char *field, std::vector<int> value )
365  {
366  vips_image_set_array_int( this->get_image(), field, &value[0],
367  static_cast<int>( value.size() ) );
368  }
369 
370  void
371  set( const char *field, double value )
372  {
373  vips_image_set_double( this->get_image(), field, value );
374  }
375 
376  void
377  set( const char *field, const char *value )
378  {
379  vips_image_set_string( this->get_image(), field, value );
380  }
381 
382  void
383  set( const char *field,
384  VipsCallbackFn free_fn, void *data, size_t length )
385  {
386  vips_image_set_blob( this->get_image(), field,
387  free_fn, data, length );
388  }
389 
390  GType
391  get_typeof( const char *field ) const
392  {
393  return( vips_image_get_typeof( this->get_image(), field ) );
394  }
395 
396  int
397  get_int( const char *field ) const
398  {
399  int value;
400 
401  if( vips_image_get_int( this->get_image(), field, &value ) )
402  throw( VError() );
403 
404  return( value );
405  }
406 
407  void
408  get_array_int( const char *field, int **out, int *n ) const
409  {
410  if( vips_image_get_array_int( this->get_image(), field, out, n ) )
411  throw( VError() );
412  }
413 
414  std::vector<int>
415  get_array_int( const char *field ) const
416  {
417  int length;
418  int *array;
419 
420  if( vips_image_get_array_int( this->get_image(), field, &array, &length ) )
421  throw( VError() );
422 
423  std::vector<int> vector( array, array + length );
424 
425  return( vector );
426  }
427 
428  double
429  get_double( const char *field ) const
430  {
431  double value;
432 
433  if( vips_image_get_double( this->get_image(), field, &value ) )
434  throw( VError() );
435 
436  return( value );
437  }
438 
439  const char *
440  get_string( const char *field ) const
441  {
442  const char *value;
443 
444  if( vips_image_get_string( this->get_image(), field, &value ) )
445  throw( VError() );
446 
447  return( value );
448  }
449 
450  const void *
451  get_blob( const char *field, size_t *length ) const
452  {
453  const void *value;
454 
455  if( vips_image_get_blob( this->get_image(), field,
456  &value, length ) )
457  throw( VError() );
458 
459  return( value );
460  }
461 
462  bool
463  remove( const char *name ) const
464  {
465  return( vips_image_remove( get_image(), name ) );
466  }
467 
468  static VOption *
469  option()
470  {
471  return( new VOption() );
472  }
473 
474  static void call_option_string( const char *operation_name,
475  const char *option_string, VOption *options = 0 );
476  static void call( const char *operation_name, VOption *options = 0 );
477 
478  static VImage
479  new_memory()
480  {
481  return( VImage( vips_image_new_memory() ) );
482  }
483 
484  static VImage
485  new_temp_file( const char *file_format = ".v" )
486  {
487  VipsImage *image;
488 
489  if( !(image = vips_image_new_temp_file( file_format )) )
490  throw( VError() );
491 
492  return( VImage( image ) );
493  }
494 
495  static VImage new_from_file( const char *name, VOption *options = 0 );
496 
497  static VImage
498  new_from_memory( void *data, size_t size,
499  int width, int height, int bands, VipsBandFormat format )
500  {
501  VipsImage *image;
502 
503  if( !(image = vips_image_new_from_memory( data, size,
504  width, height, bands, format )) )
505  throw( VError() );
506 
507  return( VImage( image ) );
508  }
509 
510  static VImage new_from_buffer( const void *buf, size_t len,
511  const char *option_string, VOption *options = 0 );
512 
513  static VImage new_from_buffer( const std::string &buf,
514  const char *option_string, VOption *options = 0 );
515 
516  static VImage new_from_source( VSource source,
517  const char *option_string, VOption *options = 0 );
518 
519  static VImage new_matrix( int width, int height );
520 
521  static VImage
522  new_matrix( int width, int height, double *array, int size )
523  {
524  VipsImage *image;
525 
526  if( !(image = vips_image_new_matrix_from_array( width, height,
527  array, size )) )
528  throw( VError() );
529 
530  return( VImage( image ) );
531  }
532 
533  static VImage new_matrixv( int width, int height, ... );
534 
535  VImage
536  new_from_image( std::vector<double> pixel ) const
537  {
538  VipsImage *image;
539 
540  if( !(image = vips_image_new_from_image( this->get_image(),
541  &pixel[0], static_cast<int>( pixel.size() ) )) )
542  throw( VError() );
543 
544  return( VImage( image ) );
545  }
546 
547  VImage
548  new_from_image( double pixel ) const
549  {
550  return( new_from_image( to_vectorv( 1, pixel ) ) );
551  }
552 
553  VImage
554  copy_memory() const
555  {
556  VipsImage *image;
557 
558  if( !(image = vips_image_copy_memory( this->get_image() )) )
559  throw( VError() );
560 
561  return( VImage( image ) );
562  }
563 
564  VImage write( VImage out ) const;
565 
566  void write_to_file( const char *name, VOption *options = 0 ) const;
567 
568  void write_to_buffer( const char *suffix, void **buf, size_t *size,
569  VOption *options = 0 ) const;
570 
571  void write_to_target( const char *suffix, VTarget target,
572  VOption *options = 0 ) const;
573 
574  void *
575  write_to_memory( size_t *size ) const
576  {
577  void *result;
578 
579  if( !(result = vips_image_write_to_memory( this->get_image(),
580  size )) )
581  throw( VError() );
582 
583  return( result );
584  }
585 
586  // a few useful things
587 
588  VImage
589  linear( double a, double b, VOption *options = 0 ) const
590  {
591  return( this->linear( to_vector( a ), to_vector( b ),
592  options ) );
593  }
594 
595  VImage
596  linear( std::vector<double> a, double b, VOption *options = 0 ) const
597  {
598  return( this->linear( a, to_vector( b ), options ) );
599  }
600 
601  VImage
602  linear( double a, std::vector<double> b, VOption *options = 0 ) const
603  {
604  return( this->linear( to_vector( a ), b, options ) );
605  }
606 
607  std::vector<VImage> bandsplit( VOption *options = 0 ) const;
608 
609  VImage bandjoin( VImage other, VOption *options = 0 ) const;
610 
611  VImage
612  bandjoin( double other, VOption *options = 0 ) const
613  {
614  return( bandjoin( to_vector( other ), options ) );
615  }
616 
617  VImage
618  bandjoin( std::vector<double> other, VOption *options = 0 ) const
619  {
620  return( bandjoin_const( other, options ) );
621  }
622 
623  VImage composite( VImage other, VipsBlendMode mode,
624  VOption *options = 0 ) const;
625 
626  std::complex<double> minpos( VOption *options = 0 ) const;
627 
628  std::complex<double> maxpos( VOption *options = 0 ) const;
629 
630  VImage
631  fliphor( VOption *options = 0 ) const
632  {
633  return( flip( VIPS_DIRECTION_HORIZONTAL, options ) );
634  }
635 
636  VImage
637  flipver( VOption *options = 0 ) const
638  {
639  return( flip( VIPS_DIRECTION_VERTICAL, options ) );
640  }
641 
642  VImage
643  rot90( VOption *options = 0 ) const
644  {
645  return( rot( VIPS_ANGLE_D90, options ) );
646  }
647 
648  VImage
649  rot180( VOption *options = 0 ) const
650  {
651  return( rot( VIPS_ANGLE_D180, options ) );
652  }
653 
654  VImage
655  rot270( VOption *options = 0 ) const
656  {
657  return( rot( VIPS_ANGLE_D270, options ) );
658  }
659 
660  VImage
661  dilate( VImage mask, VOption *options = 0 ) const
662  {
663  return( morph( mask, VIPS_OPERATION_MORPHOLOGY_DILATE,
664  options ) );
665  }
666 
667  VImage
668  erode( VImage mask, VOption *options = 0 ) const
669  {
670  return( morph( mask, VIPS_OPERATION_MORPHOLOGY_ERODE,
671  options ) );
672  }
673 
674  VImage
675  median( int size = 3, VOption *options = 0 ) const
676  {
677  return( rank( size, size, (size * size) / 2, options ) );
678  }
679 
680  VImage
681  floor( VOption *options = 0 ) const
682  {
683  return( round( VIPS_OPERATION_ROUND_FLOOR, options ) );
684  }
685 
686  VImage
687  ceil( VOption *options = 0 ) const
688  {
689  return( round( VIPS_OPERATION_ROUND_CEIL, options ) );
690  }
691 
692  VImage
693  rint( VOption *options = 0 ) const
694  {
695  return( round( VIPS_OPERATION_ROUND_RINT, options ) );
696  }
697 
698  VImage
699  bandand( VOption *options = 0 ) const
700  {
701  return( bandbool( VIPS_OPERATION_BOOLEAN_AND, options ) );
702  }
703 
704  VImage
705  bandor( VOption *options = 0 ) const
706  {
707  return( bandbool( VIPS_OPERATION_BOOLEAN_OR, options ) );
708  }
709 
710  VImage
711  bandeor( VOption *options = 0 ) const
712  {
713  return( bandbool( VIPS_OPERATION_BOOLEAN_EOR, options ) );
714  }
715 
716  VImage
717  real( VOption *options = 0 ) const
718  {
719  return( complexget( VIPS_OPERATION_COMPLEXGET_REAL, options ) );
720  }
721 
722  VImage
723  imag( VOption *options = 0 ) const
724  {
725  return( complexget( VIPS_OPERATION_COMPLEXGET_IMAG, options ) );
726  }
727 
728  VImage
729  polar( VOption *options = 0 ) const
730  {
731  return( complex( VIPS_OPERATION_COMPLEX_POLAR, options ) );
732  }
733 
734  VImage
735  rect( VOption *options = 0 ) const
736  {
737  return( complex( VIPS_OPERATION_COMPLEX_RECT, options ) );
738  }
739 
740  VImage
741  conj( VOption *options = 0 ) const
742  {
743  return( complex( VIPS_OPERATION_COMPLEX_CONJ, options ) );
744  }
745 
746  VImage
747  sin( VOption *options = 0 ) const
748  {
749  return( math( VIPS_OPERATION_MATH_SIN, options ) );
750  }
751 
752  VImage
753  cos( VOption *options = 0 ) const
754  {
755  return( math( VIPS_OPERATION_MATH_COS, options ) );
756  }
757 
758  VImage
759  tan( VOption *options = 0 ) const
760  {
761  return( math( VIPS_OPERATION_MATH_TAN, options ) );
762  }
763 
764  VImage
765  asin( VOption *options = 0 ) const
766  {
767  return( math( VIPS_OPERATION_MATH_ASIN, options ) );
768  }
769 
770  VImage
771  acos( VOption *options = 0 ) const
772  {
773  return( math( VIPS_OPERATION_MATH_ACOS, options ) );
774  }
775 
776  VImage
777  atan( VOption *options = 0 ) const
778  {
779  return( math( VIPS_OPERATION_MATH_ATAN, options ) );
780  }
781 
782  VImage
783  log( VOption *options = 0 ) const
784  {
785  return( math( VIPS_OPERATION_MATH_LOG, options ) );
786  }
787 
788  VImage
789  log10( VOption *options = 0 ) const
790  {
791  return( math( VIPS_OPERATION_MATH_LOG10, options ) );
792  }
793 
794  VImage
795  exp( VOption *options = 0 ) const
796  {
797  return( math( VIPS_OPERATION_MATH_EXP, options ) );
798  }
799 
800  VImage
801  exp10( VOption *options = 0 ) const
802  {
803  return( math( VIPS_OPERATION_MATH_EXP10, options ) );
804  }
805 
806  VImage
807  pow( VImage other, VOption *options = 0 ) const
808  {
809  return( math2( other, VIPS_OPERATION_MATH2_POW, options ) );
810  }
811 
812  VImage
813  pow( double other, VOption *options = 0 ) const
814  {
815  return( math2_const( VIPS_OPERATION_MATH2_POW,
816  to_vector( other ), options ) );
817  }
818 
819  VImage
820  pow( std::vector<double> other, VOption *options = 0 ) const
821  {
822  return( math2_const( VIPS_OPERATION_MATH2_POW,
823  other, options ) );
824  }
825 
826  VImage
827  wop( VImage other, VOption *options = 0 ) const
828  {
829  return( math2( other, VIPS_OPERATION_MATH2_WOP, options ) );
830  }
831 
832  VImage
833  wop( double other, VOption *options = 0 ) const
834  {
835  return( math2_const( VIPS_OPERATION_MATH2_WOP,
836  to_vector( other ), options ) );
837  }
838 
839  VImage
840  wop( std::vector<double> other, VOption *options = 0 ) const
841  {
842  return( math2_const( VIPS_OPERATION_MATH2_WOP,
843  other, options ) );
844  }
845 
846  VImage
847  ifthenelse( std::vector<double> th, VImage el,
848  VOption *options = 0 ) const
849  {
850  return( ifthenelse( el.new_from_image( th ), el, options ) );
851  }
852 
853  VImage
854  ifthenelse( VImage th, std::vector<double> el,
855  VOption *options = 0 ) const
856  {
857  return( ifthenelse( th, th.new_from_image( el ), options ) );
858  }
859 
860  VImage
861  ifthenelse( std::vector<double> th, std::vector<double> el,
862  VOption *options = 0 ) const
863  {
864  return( ifthenelse( new_from_image( th ), new_from_image( el ),
865  options ) );
866  }
867 
868  VImage
869  ifthenelse( double th, VImage el, VOption *options = 0 ) const
870  {
871  return( ifthenelse( to_vector( th ), el, options ) );
872  }
873 
874  VImage
875  ifthenelse( VImage th, double el, VOption *options = 0 ) const
876  {
877  return( ifthenelse( th, to_vector( el ), options ) );
878  }
879 
880  VImage
881  ifthenelse( double th, double el, VOption *options = 0 ) const
882  {
883  return( ifthenelse( to_vector( th ), to_vector( el ),
884  options ) );
885  }
886 
887  // Operator overloads
888 
889  VImage operator[]( int index ) const;
890 
891  std::vector<double> operator()( int x, int y ) const;
892 
893  friend VIPS_CPLUSPLUS_API VImage
894  operator+( const VImage a, const VImage b );
895  friend VIPS_CPLUSPLUS_API VImage
896  operator+( const double a, const VImage b );
897  friend VIPS_CPLUSPLUS_API VImage
898  operator+( const VImage a, const double b );
899  friend VIPS_CPLUSPLUS_API VImage
900  operator+( const std::vector<double> a, const VImage b );
901  friend VIPS_CPLUSPLUS_API VImage
902  operator+( const VImage a, const std::vector<double> b );
903 
904  friend VIPS_CPLUSPLUS_API VImage &
905  operator+=( VImage &a, const VImage b );
906  friend VIPS_CPLUSPLUS_API VImage &
907  operator+=( VImage &a, const double b );
908  friend VIPS_CPLUSPLUS_API VImage &
909  operator+=( VImage &a, const std::vector<double> b );
910 
911  friend VIPS_CPLUSPLUS_API VImage
912  operator-( const VImage a, const VImage b );
913  friend VIPS_CPLUSPLUS_API VImage
914  operator-( const double a, const VImage b );
915  friend VIPS_CPLUSPLUS_API VImage
916  operator-( const VImage a, const double b );
917  friend VIPS_CPLUSPLUS_API VImage
918  operator-( const std::vector<double> a, const VImage b );
919  friend VIPS_CPLUSPLUS_API VImage
920  operator-( const VImage a, const std::vector<double> b );
921 
922  friend VIPS_CPLUSPLUS_API VImage &
923  operator-=( VImage &a, const VImage b );
924  friend VIPS_CPLUSPLUS_API VImage &
925  operator-=( VImage &a, const double b );
926  friend VIPS_CPLUSPLUS_API VImage &
927  operator-=( VImage &a, const std::vector<double> b );
928 
929  friend VIPS_CPLUSPLUS_API VImage
930  operator-( const VImage a );
931 
932  friend VIPS_CPLUSPLUS_API VImage
933  operator*( const VImage a, const VImage b );
934  friend VIPS_CPLUSPLUS_API VImage
935  operator*( const double a, const VImage b );
936  friend VIPS_CPLUSPLUS_API VImage
937  operator*( const VImage a, const double b );
938  friend VIPS_CPLUSPLUS_API VImage
939  operator*( const std::vector<double> a, const VImage b );
940  friend VIPS_CPLUSPLUS_API VImage
941  operator*( const VImage a, const std::vector<double> b );
942 
943  friend VIPS_CPLUSPLUS_API VImage &
944  operator*=( VImage &a, const VImage b );
945  friend VIPS_CPLUSPLUS_API VImage &
946  operator*=( VImage &a, const double b );
947  friend VIPS_CPLUSPLUS_API VImage &
948  operator*=( VImage &a, const std::vector<double> b );
949 
950  friend VIPS_CPLUSPLUS_API VImage
951  operator/( const VImage a, const VImage b );
952  friend VIPS_CPLUSPLUS_API VImage
953  operator/( const double a, const VImage b );
954  friend VIPS_CPLUSPLUS_API VImage
955  operator/( const VImage a, const double b );
956  friend VIPS_CPLUSPLUS_API VImage
957  operator/( const std::vector<double> a, const VImage b );
958  friend VIPS_CPLUSPLUS_API VImage
959  operator/( const VImage a, const std::vector<double> b );
960 
961  friend VIPS_CPLUSPLUS_API VImage &
962  operator/=( VImage &a, const VImage b );
963  friend VIPS_CPLUSPLUS_API VImage &
964  operator/=( VImage &a, const double b );
965  friend VIPS_CPLUSPLUS_API VImage &
966  operator/=( VImage &a, const std::vector<double> b );
967 
968  friend VIPS_CPLUSPLUS_API VImage
969  operator%( const VImage a, const VImage b );
970  friend VIPS_CPLUSPLUS_API VImage
971  operator%( const VImage a, const double b );
972  friend VIPS_CPLUSPLUS_API VImage
973  operator%( const VImage a, const std::vector<double> b );
974 
975  friend VIPS_CPLUSPLUS_API VImage &
976  operator%=( VImage &a, const VImage b );
977  friend VIPS_CPLUSPLUS_API VImage &
978  operator%=( VImage &a, const double b );
979  friend VIPS_CPLUSPLUS_API VImage &
980  operator%=( VImage &a, const std::vector<double> b );
981 
982  friend VIPS_CPLUSPLUS_API VImage
983  operator<( const VImage a, const VImage b );
984  friend VIPS_CPLUSPLUS_API VImage
985  operator<( const double a, const VImage b );
986  friend VIPS_CPLUSPLUS_API VImage
987  operator<( const VImage a, const double b );
988  friend VIPS_CPLUSPLUS_API VImage
989  operator<( const std::vector<double> a, const VImage b );
990  friend VIPS_CPLUSPLUS_API VImage
991  operator<( const VImage a, const std::vector<double> b );
992 
993  friend VIPS_CPLUSPLUS_API VImage
994  operator<=( const VImage a, const VImage b );
995  friend VIPS_CPLUSPLUS_API VImage
996  operator<=( const double a, const VImage b );
997  friend VIPS_CPLUSPLUS_API VImage
998  operator<=( const VImage a, const double b );
999  friend VIPS_CPLUSPLUS_API VImage
1000  operator<=( const std::vector<double> a, const VImage b );
1001  friend VIPS_CPLUSPLUS_API VImage
1002  operator<=( const VImage a, const std::vector<double> b );
1003 
1004  friend VIPS_CPLUSPLUS_API VImage
1005  operator>( const VImage a, const VImage b );
1006  friend VIPS_CPLUSPLUS_API VImage
1007  operator>( const double a, const VImage b );
1008  friend VIPS_CPLUSPLUS_API VImage
1009  operator>( const VImage a, const double b );
1010  friend VIPS_CPLUSPLUS_API VImage
1011  operator>( const std::vector<double> a, const VImage b );
1012  friend VIPS_CPLUSPLUS_API VImage
1013  operator>( const VImage a, const std::vector<double> b );
1014 
1015  friend VIPS_CPLUSPLUS_API VImage
1016  operator>=( const VImage a, const VImage b );
1017  friend VIPS_CPLUSPLUS_API VImage
1018  operator>=( const double a, const VImage b );
1019  friend VIPS_CPLUSPLUS_API VImage
1020  operator>=( const VImage a, const double b );
1021  friend VIPS_CPLUSPLUS_API VImage
1022  operator>=( const std::vector<double> a, const VImage b );
1023  friend VIPS_CPLUSPLUS_API VImage
1024  operator>=( const VImage a, const std::vector<double> b );
1025 
1026  friend VIPS_CPLUSPLUS_API VImage
1027  operator==( const VImage a, const VImage b );
1028  friend VIPS_CPLUSPLUS_API VImage
1029  operator==( const double a, const VImage b );
1030  friend VIPS_CPLUSPLUS_API VImage
1031  operator==( const VImage a, const double b );
1032  friend VIPS_CPLUSPLUS_API VImage
1033  operator==( const std::vector<double> a, const VImage b );
1034  friend VIPS_CPLUSPLUS_API VImage
1035  operator==( const VImage a, const std::vector<double> b );
1036 
1037  friend VIPS_CPLUSPLUS_API VImage
1038  operator!=( const VImage a, const VImage b );
1039  friend VIPS_CPLUSPLUS_API VImage
1040  operator!=( const double a, const VImage b );
1041  friend VIPS_CPLUSPLUS_API VImage
1042  operator!=( const VImage a, const double b );
1043  friend VIPS_CPLUSPLUS_API VImage
1044  operator!=( const std::vector<double> a, const VImage b );
1045  friend VIPS_CPLUSPLUS_API VImage
1046  operator!=( const VImage a, const std::vector<double> b );
1047 
1048  friend VIPS_CPLUSPLUS_API VImage
1049  operator&( const VImage a, const VImage b );
1050  friend VIPS_CPLUSPLUS_API VImage
1051  operator&( const double a, const VImage b );
1052  friend VIPS_CPLUSPLUS_API VImage
1053  operator&( const VImage a, const double b );
1054  friend VIPS_CPLUSPLUS_API VImage
1055  operator&( const std::vector<double> a, const VImage b );
1056  friend VIPS_CPLUSPLUS_API VImage
1057  operator&( const VImage a, const std::vector<double> b );
1058 
1059  friend VIPS_CPLUSPLUS_API VImage &
1060  operator&=( VImage &a, const VImage b );
1061  friend VIPS_CPLUSPLUS_API VImage &
1062  operator&=( VImage &a, const double b );
1063  friend VIPS_CPLUSPLUS_API VImage &
1064  operator&=( VImage &a, const std::vector<double> b );
1065 
1066  friend VIPS_CPLUSPLUS_API VImage
1067  operator|( const VImage a, const VImage b );
1068  friend VIPS_CPLUSPLUS_API VImage
1069  operator|( const double a, const VImage b );
1070  friend VIPS_CPLUSPLUS_API VImage
1071  operator|( const VImage a, const double b );
1072  friend VIPS_CPLUSPLUS_API VImage
1073  operator|( const std::vector<double> a, const VImage b );
1074  friend VIPS_CPLUSPLUS_API VImage
1075  operator|( const VImage a, const std::vector<double> b );
1076 
1077  friend VIPS_CPLUSPLUS_API VImage &
1078  operator|=( VImage &a, const VImage b );
1079  friend VIPS_CPLUSPLUS_API VImage &
1080  operator|=( VImage &a, const double b );
1081  friend VIPS_CPLUSPLUS_API VImage &
1082  operator|=( VImage &a, const std::vector<double> b );
1083 
1084  friend VIPS_CPLUSPLUS_API VImage
1085  operator^( const VImage a, const VImage b );
1086  friend VIPS_CPLUSPLUS_API VImage
1087  operator^( const double a, const VImage b );
1088  friend VIPS_CPLUSPLUS_API VImage
1089  operator^( const VImage a, const double b );
1090  friend VIPS_CPLUSPLUS_API VImage
1091  operator^( const std::vector<double> a, const VImage b );
1092  friend VIPS_CPLUSPLUS_API VImage
1093  operator^( const VImage a, const std::vector<double> b );
1094 
1095  friend VIPS_CPLUSPLUS_API VImage &
1096  operator^=( VImage &a, const VImage b );
1097  friend VIPS_CPLUSPLUS_API VImage &
1098  operator^=( VImage &a, const double b );
1099  friend VIPS_CPLUSPLUS_API VImage &
1100  operator^=( VImage &a, const std::vector<double> b );
1101 
1102  friend VIPS_CPLUSPLUS_API VImage
1103  operator<<( const VImage a, const VImage b );
1104  friend VIPS_CPLUSPLUS_API VImage
1105  operator<<( const VImage a, const double b );
1106  friend VIPS_CPLUSPLUS_API VImage
1107  operator<<( const VImage a, const std::vector<double> b );
1108 
1109  friend VIPS_CPLUSPLUS_API VImage &
1110  operator<<=( VImage &a, const VImage b );
1111  friend VIPS_CPLUSPLUS_API VImage &
1112  operator<<=( VImage &a, const double b );
1113  friend VIPS_CPLUSPLUS_API VImage &
1114  operator<<=( VImage &a, const std::vector<double> b );
1115 
1116  friend VIPS_CPLUSPLUS_API VImage
1117  operator>>( const VImage a, const VImage b );
1118  friend VIPS_CPLUSPLUS_API VImage
1119  operator>>( const VImage a, const double b );
1120  friend VIPS_CPLUSPLUS_API VImage
1121  operator>>( const VImage a, const std::vector<double> b );
1122 
1123  friend VIPS_CPLUSPLUS_API VImage &
1124  operator>>=( VImage &a, const VImage b );
1125  friend VIPS_CPLUSPLUS_API VImage &
1126  operator>>=( VImage &a, const double b );
1127  friend VIPS_CPLUSPLUS_API VImage &
1128  operator>>=( VImage &a, const std::vector<double> b );
1129 
1130  /* Automatically generated members.
1131  *
1132  * Rebuild with:
1133  *
1134  * make vips-operators.h
1135  *
1136  * Then delete from here to the end of the class and paste in
1137  * vips-operators.h. We could just #include vips-operators.h, but
1138  * that confuses doxygen.
1139  */
1140 
1141 // headers for vips operations
1142 // Mon 17 Aug 18:04:42 BST 2020
1143 // this file is generated automatically, do not edit!
1144 
1150 VImage CMC2LCh( VOption *options = 0 ) const;
1151 
1157 VImage CMYK2XYZ( VOption *options = 0 ) const;
1158 
1164 VImage HSV2sRGB( VOption *options = 0 ) const;
1165 
1171 VImage LCh2CMC( VOption *options = 0 ) const;
1172 
1178 VImage LCh2Lab( VOption *options = 0 ) const;
1179 
1185 VImage Lab2LCh( VOption *options = 0 ) const;
1186 
1192 VImage Lab2LabQ( VOption *options = 0 ) const;
1193 
1199 VImage Lab2LabS( VOption *options = 0 ) const;
1200 
1210 VImage Lab2XYZ( VOption *options = 0 ) const;
1211 
1217 VImage LabQ2Lab( VOption *options = 0 ) const;
1218 
1224 VImage LabQ2LabS( VOption *options = 0 ) const;
1225 
1231 VImage LabQ2sRGB( VOption *options = 0 ) const;
1232 
1238 VImage LabS2Lab( VOption *options = 0 ) const;
1239 
1245 VImage LabS2LabQ( VOption *options = 0 ) const;
1246 
1252 VImage XYZ2CMYK( VOption *options = 0 ) const;
1253 
1263 VImage XYZ2Lab( VOption *options = 0 ) const;
1264 
1270 VImage XYZ2Yxy( VOption *options = 0 ) const;
1271 
1277 VImage XYZ2scRGB( VOption *options = 0 ) const;
1278 
1284 VImage Yxy2XYZ( VOption *options = 0 ) const;
1285 
1291 VImage abs( VOption *options = 0 ) const;
1292 
1299 VImage add( VImage right, VOption *options = 0 ) const;
1300 
1319 VImage affine( std::vector<double> matrix, VOption *options = 0 ) const;
1320 
1335 static VImage analyzeload( const char *filename, VOption *options = 0 );
1336 
1353 static VImage arrayjoin( std::vector<VImage> in, VOption *options = 0 );
1354 
1360 VImage autorot( VOption *options = 0 ) const;
1361 
1367 double avg( VOption *options = 0 ) const;
1368 
1375 VImage bandbool( VipsOperationBoolean boolean, VOption *options = 0 ) const;
1376 
1386 VImage bandfold( VOption *options = 0 ) const;
1387 
1394 static VImage bandjoin( std::vector<VImage> in, VOption *options = 0 );
1395 
1402 VImage bandjoin_const( std::vector<double> c, VOption *options = 0 ) const;
1403 
1409 VImage bandmean( VOption *options = 0 ) const;
1410 
1421 static VImage bandrank( std::vector<VImage> in, VOption *options = 0 );
1422 
1432 VImage bandunfold( VOption *options = 0 ) const;
1433 
1445 static VImage black( int width, int height, VOption *options = 0 );
1446 
1454 VImage boolean( VImage right, VipsOperationBoolean boolean, VOption *options = 0 ) const;
1455 
1463 VImage boolean_const( VipsOperationBoolean boolean, std::vector<double> c, VOption *options = 0 ) const;
1464 
1470 VImage buildlut( VOption *options = 0 ) const;
1471 
1477 VImage byteswap( VOption *options = 0 ) const;
1478 
1490 VImage cache( VOption *options = 0 ) const;
1491 
1502 VImage canny( VOption *options = 0 ) const;
1503 
1510 VImage case_image( std::vector<VImage> cases, VOption *options = 0 ) const;
1511 
1522 VImage cast( VipsBandFormat format, VOption *options = 0 ) const;
1523 
1534 VImage colourspace( VipsInterpretation space, VOption *options = 0 ) const;
1535 
1551 VImage compass( VImage mask, VOption *options = 0 ) const;
1552 
1559 VImage complex( VipsOperationComplex cmplx, VOption *options = 0 ) const;
1560 
1568 VImage complex2( VImage right, VipsOperationComplex2 cmplx, VOption *options = 0 ) const;
1569 
1576 VImage complexform( VImage right, VOption *options = 0 ) const;
1577 
1584 VImage complexget( VipsOperationComplexget get, VOption *options = 0 ) const;
1585 
1600 static VImage composite( std::vector<VImage> in, std::vector<int> mode, VOption *options = 0 );
1601 
1616 VImage composite2( VImage overlay, VipsBlendMode mode, VOption *options = 0 ) const;
1617 
1630 VImage conv( VImage mask, VOption *options = 0 ) const;
1631 
1643 VImage conva( VImage mask, VOption *options = 0 ) const;
1644 
1655 VImage convasep( VImage mask, VOption *options = 0 ) const;
1656 
1663 VImage convf( VImage mask, VOption *options = 0 ) const;
1664 
1671 VImage convi( VImage mask, VOption *options = 0 ) const;
1672 
1685 VImage convsep( VImage mask, VOption *options = 0 ) const;
1686 
1706 VImage copy( VOption *options = 0 ) const;
1707 
1714 double countlines( VipsDirection direction, VOption *options = 0 ) const;
1715 
1725 VImage crop( int left, int top, int width, int height, VOption *options = 0 ) const;
1726 
1745 static VImage csvload( const char *filename, VOption *options = 0 );
1746 
1765 static VImage csvload_source( VSource source, VOption *options = 0 );
1766 
1779 void csvsave( const char *filename, VOption *options = 0 ) const;
1780 
1793 void csvsave_target( VTarget target, VOption *options = 0 ) const;
1794 
1801 VImage dE00( VImage right, VOption *options = 0 ) const;
1802 
1809 VImage dE76( VImage right, VOption *options = 0 ) const;
1810 
1817 VImage dECMC( VImage right, VOption *options = 0 ) const;
1818 
1824 double deviate( VOption *options = 0 ) const;
1825 
1832 VImage divide( VImage right, VOption *options = 0 ) const;
1833 
1846 void draw_circle( std::vector<double> ink, int cx, int cy, int radius, VOption *options = 0 ) const;
1847 
1860 void draw_flood( std::vector<double> ink, int x, int y, VOption *options = 0 ) const;
1861 
1873 void draw_image( VImage sub, int x, int y, VOption *options = 0 ) const;
1874 
1884 void draw_line( std::vector<double> ink, int x1, int y1, int x2, int y2, VOption *options = 0 ) const;
1885 
1894 void draw_mask( std::vector<double> ink, VImage mask, int x, int y, VOption *options = 0 ) const;
1895 
1909 void draw_rect( std::vector<double> ink, int left, int top, int width, int height, VOption *options = 0 ) const;
1910 
1919 void draw_smudge( int left, int top, int width, int height, VOption *options = 0 ) const;
1920 
1950 void dzsave( const char *filename, VOption *options = 0 ) const;
1951 
1981 VipsBlob *dzsave_buffer( VOption *options = 0 ) const;
1982 
1997 VImage embed( int x, int y, int width, int height, VOption *options = 0 ) const;
1998 
2008 VImage extract_area( int left, int top, int width, int height, VOption *options = 0 ) const;
2009 
2020 VImage extract_band( int band, VOption *options = 0 ) const;
2021 
2034 static VImage eye( int width, int height, VOption *options = 0 );
2035 
2041 VImage falsecolour( VOption *options = 0 ) const;
2042 
2049 VImage fastcor( VImage ref, VOption *options = 0 ) const;
2050 
2056 VImage fill_nearest( VOption *options = 0 ) const;
2057 
2071 int find_trim( int *top, int *width, int *height, VOption *options = 0 ) const;
2072 
2087 static VImage fitsload( const char *filename, VOption *options = 0 );
2088 
2100 void fitssave( const char *filename, VOption *options = 0 ) const;
2101 
2112 VImage flatten( VOption *options = 0 ) const;
2113 
2120 VImage flip( VipsDirection direction, VOption *options = 0 ) const;
2121 
2127 VImage float2rad( VOption *options = 0 ) const;
2128 
2137 static VImage fractsurf( int width, int height, double fractal_dimension, VOption *options = 0 );
2138 
2145 VImage freqmult( VImage mask, VOption *options = 0 ) const;
2146 
2152 VImage fwfft( VOption *options = 0 ) const;
2153 
2163 VImage gamma( VOption *options = 0 ) const;
2164 
2176 VImage gaussblur( double sigma, VOption *options = 0 ) const;
2177 
2191 static VImage gaussmat( double sigma, double min_ampl, VOption *options = 0 );
2192 
2205 static VImage gaussnoise( int width, int height, VOption *options = 0 );
2206 
2214 std::vector<double> getpoint( int x, int y, VOption *options = 0 ) const;
2215 
2232 static VImage gifload( const char *filename, VOption *options = 0 );
2233 
2250 static VImage gifload_buffer( VipsBlob *buffer, VOption *options = 0 );
2251 
2268 static VImage gifload_source( VSource source, VOption *options = 0 );
2269 
2280 VImage globalbalance( VOption *options = 0 ) const;
2281 
2295 VImage gravity( VipsCompassDirection direction, int width, int height, VOption *options = 0 ) const;
2296 
2308 static VImage grey( int width, int height, VOption *options = 0 );
2309 
2318 VImage grid( int tile_height, int across, int down, VOption *options = 0 ) const;
2319 
2338 static VImage heifload( const char *filename, VOption *options = 0 );
2339 
2358 static VImage heifload_buffer( VipsBlob *buffer, VOption *options = 0 );
2359 
2378 static VImage heifload_source( VSource source, VOption *options = 0 );
2379 
2394 void heifsave( const char *filename, VOption *options = 0 ) const;
2395 
2410 VipsBlob *heifsave_buffer( VOption *options = 0 ) const;
2411 
2426 void heifsave_target( VTarget target, VOption *options = 0 ) const;
2427 
2433 VImage hist_cum( VOption *options = 0 ) const;
2434 
2440 double hist_entropy( VOption *options = 0 ) const;
2441 
2451 VImage hist_equal( VOption *options = 0 ) const;
2452 
2462 VImage hist_find( VOption *options = 0 ) const;
2463 
2474 VImage hist_find_indexed( VImage index, VOption *options = 0 ) const;
2475 
2485 VImage hist_find_ndim( VOption *options = 0 ) const;
2486 
2492 bool hist_ismonotonic( VOption *options = 0 ) const;
2493 
2505 VImage hist_local( int width, int height, VOption *options = 0 ) const;
2506 
2513 VImage hist_match( VImage ref, VOption *options = 0 ) const;
2514 
2520 VImage hist_norm( VOption *options = 0 ) const;
2521 
2527 VImage hist_plot( VOption *options = 0 ) const;
2528 
2540 VImage hough_circle( VOption *options = 0 ) const;
2541 
2552 VImage hough_line( VOption *options = 0 ) const;
2553 
2566 VImage icc_export( VOption *options = 0 ) const;
2567 
2580 VImage icc_import( VOption *options = 0 ) const;
2581 
2596 VImage icc_transform( const char *output_profile, VOption *options = 0 ) const;
2597 
2609 static VImage identity( VOption *options = 0 );
2610 
2622 VImage ifthenelse( VImage in1, VImage in2, VOption *options = 0 ) const;
2623 
2637 VImage insert( VImage sub, int x, int y, VOption *options = 0 ) const;
2638 
2644 VImage invert( VOption *options = 0 ) const;
2645 
2655 VImage invertlut( VOption *options = 0 ) const;
2656 
2666 VImage invfft( VOption *options = 0 ) const;
2667 
2682 VImage join( VImage in2, VipsDirection direction, VOption *options = 0 ) const;
2683 
2700 static VImage jpegload( const char *filename, VOption *options = 0 );
2701 
2718 static VImage jpegload_buffer( VipsBlob *buffer, VOption *options = 0 );
2719 
2736 static VImage jpegload_source( VSource source, VOption *options = 0 );
2737 
2759 void jpegsave( const char *filename, VOption *options = 0 ) const;
2760 
2782 VipsBlob *jpegsave_buffer( VOption *options = 0 ) const;
2783 
2804 void jpegsave_mime( VOption *options = 0 ) const;
2805 
2827 void jpegsave_target( VTarget target, VOption *options = 0 ) const;
2828 
2834 VImage labelregions( VOption *options = 0 ) const;
2835 
2847 VImage linear( std::vector<double> a, std::vector<double> b, VOption *options = 0 ) const;
2848 
2861 VImage linecache( VOption *options = 0 ) const;
2862 
2876 static VImage logmat( double sigma, double min_ampl, VOption *options = 0 );
2877 
2896 static VImage magickload( const char *filename, VOption *options = 0 );
2897 
2916 static VImage magickload_buffer( VipsBlob *buffer, VOption *options = 0 );
2917 
2933 void magicksave( const char *filename, VOption *options = 0 ) const;
2934 
2950 VipsBlob *magicksave_buffer( VOption *options = 0 ) const;
2951 
2962 VImage mapim( VImage index, VOption *options = 0 ) const;
2963 
2974 VImage maplut( VImage lut, VOption *options = 0 ) const;
2975 
2993 static VImage mask_butterworth( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 );
2994 
3014 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 );
3015 
3034 static VImage mask_butterworth_ring( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 );
3035 
3051 static VImage mask_fractal( int width, int height, double fractal_dimension, VOption *options = 0 );
3052 
3069 static VImage mask_gaussian( int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 );
3070 
3089 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 );
3090 
3108 static VImage mask_gaussian_ring( int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 );
3109 
3125 static VImage mask_ideal( int width, int height, double frequency_cutoff, VOption *options = 0 );
3126 
3144 static VImage mask_ideal_band( int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = 0 );
3145 
3162 static VImage mask_ideal_ring( int width, int height, double frequency_cutoff, double ringwidth, VOption *options = 0 );
3163 
3185 VImage match( VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = 0 ) const;
3186 
3193 VImage math( VipsOperationMath math, VOption *options = 0 ) const;
3194 
3202 VImage math2( VImage right, VipsOperationMath2 math2, VOption *options = 0 ) const;
3203 
3211 VImage math2_const( VipsOperationMath2 math2, std::vector<double> c, VOption *options = 0 ) const;
3212 
3227 static VImage matload( const char *filename, VOption *options = 0 );
3228 
3234 VImage matrixinvert( VOption *options = 0 ) const;
3235 
3250 static VImage matrixload( const char *filename, VOption *options = 0 );
3251 
3266 static VImage matrixload_source( VSource source, VOption *options = 0 );
3267 
3278 void matrixprint( VOption *options = 0 ) const;
3279 
3291 void matrixsave( const char *filename, VOption *options = 0 ) const;
3292 
3304 void matrixsave_target( VTarget target, VOption *options = 0 ) const;
3305 
3315 double max( VOption *options = 0 ) const;
3316 
3331 VImage measure( int h, int v, VOption *options = 0 ) const;
3332 
3346 VImage merge( VImage sec, VipsDirection direction, int dx, int dy, VOption *options = 0 ) const;
3347 
3357 double min( VOption *options = 0 ) const;
3358 
3366 VImage morph( VImage mask, VipsOperationMorphology morph, VOption *options = 0 ) const;
3367 
3386 VImage mosaic( VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = 0 ) const;
3387 
3412 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;
3413 
3423 VImage msb( VOption *options = 0 ) const;
3424 
3431 VImage multiply( VImage right, VOption *options = 0 ) const;
3432 
3447 static VImage niftiload( const char *filename, VOption *options = 0 );
3448 
3460 void niftisave( const char *filename, VOption *options = 0 ) const;
3461 
3476 static VImage openexrload( const char *filename, VOption *options = 0 );
3477 
3496 static VImage openslideload( const char *filename, VOption *options = 0 );
3497 
3517 static VImage pdfload( const char *filename, VOption *options = 0 );
3518 
3538 static VImage pdfload_buffer( VipsBlob *buffer, VOption *options = 0 );
3539 
3559 static VImage pdfload_source( VSource source, VOption *options = 0 );
3560 
3567 int percent( double percent, VOption *options = 0 ) const;
3568 
3581 static VImage perlin( int width, int height, VOption *options = 0 );
3582 
3589 VImage phasecor( VImage in2, VOption *options = 0 ) const;
3590 
3605 static VImage pngload( const char *filename, VOption *options = 0 );
3606 
3621 static VImage pngload_buffer( VipsBlob *buffer, VOption *options = 0 );
3622 
3637 static VImage pngload_source( VSource source, VOption *options = 0 );
3638 
3659 void pngsave( const char *filename, VOption *options = 0 ) const;
3660 
3681 VipsBlob *pngsave_buffer( VOption *options = 0 ) const;
3682 
3703 void pngsave_target( VTarget target, VOption *options = 0 ) const;
3704 
3719 static VImage ppmload( const char *filename, VOption *options = 0 );
3720 
3735 static VImage ppmload_source( VSource source, VOption *options = 0 );
3736 
3751 void ppmsave( const char *filename, VOption *options = 0 ) const;
3752 
3767 void ppmsave_target( VTarget target, VOption *options = 0 ) const;
3768 
3778 VImage premultiply( VOption *options = 0 ) const;
3779 
3786 VImage profile( VImage *rows, VOption *options = 0 ) const;
3787 
3794 static VipsBlob *profile_load( const char *name, VOption *options = 0 );
3795 
3802 VImage project( VImage *rows, VOption *options = 0 ) const;
3803 
3814 VImage quadratic( VImage coeff, VOption *options = 0 ) const;
3815 
3821 VImage rad2float( VOption *options = 0 ) const;
3822 
3837 static VImage radload( const char *filename, VOption *options = 0 );
3838 
3853 static VImage radload_buffer( VipsBlob *buffer, VOption *options = 0 );
3854 
3869 static VImage radload_source( VSource source, VOption *options = 0 );
3870 
3882 void radsave( const char *filename, VOption *options = 0 ) const;
3883 
3895 VipsBlob *radsave_buffer( VOption *options = 0 ) const;
3896 
3908 void radsave_target( VTarget target, VOption *options = 0 ) const;
3909 
3918 VImage rank( int width, int height, int index, VOption *options = 0 ) const;
3919 
3940 static VImage rawload( const char *filename, int width, int height, int bands, VOption *options = 0 );
3941 
3953 void rawsave( const char *filename, VOption *options = 0 ) const;
3954 
3966 void rawsave_fd( int fd, VOption *options = 0 ) const;
3967 
3974 VImage recomb( VImage m, VOption *options = 0 ) const;
3975 
3988 VImage reduce( double hshrink, double vshrink, VOption *options = 0 ) const;
3989 
4001 VImage reduceh( double hshrink, VOption *options = 0 ) const;
4002 
4014 VImage reducev( double vshrink, VOption *options = 0 ) const;
4015 
4023 VImage relational( VImage right, VipsOperationRelational relational, VOption *options = 0 ) const;
4024 
4032 VImage relational_const( VipsOperationRelational relational, std::vector<double> c, VOption *options = 0 ) const;
4033 
4040 VImage remainder( VImage right, VOption *options = 0 ) const;
4041 
4048 VImage remainder_const( std::vector<double> c, VOption *options = 0 ) const;
4049 
4057 VImage replicate( int across, int down, VOption *options = 0 ) const;
4058 
4074 VImage resize( double scale, VOption *options = 0 ) const;
4075 
4082 VImage rot( VipsAngle angle, VOption *options = 0 ) const;
4083 
4093 VImage rot45( VOption *options = 0 ) const;
4094 
4110 VImage rotate( double angle, VOption *options = 0 ) const;
4111 
4118 VImage round( VipsOperationRound round, VOption *options = 0 ) const;
4119 
4125 VImage sRGB2HSV( VOption *options = 0 ) const;
4126 
4132 VImage sRGB2scRGB( VOption *options = 0 ) const;
4133 
4143 VImage scRGB2BW( VOption *options = 0 ) const;
4144 
4150 VImage scRGB2XYZ( VOption *options = 0 ) const;
4151 
4161 VImage scRGB2sRGB( VOption *options = 0 ) const;
4162 
4173 VImage scale( VOption *options = 0 ) const;
4174 
4186 VImage sequential( VOption *options = 0 ) const;
4187 
4203 VImage sharpen( VOption *options = 0 ) const;
4204 
4212 VImage shrink( double hshrink, double vshrink, VOption *options = 0 ) const;
4213 
4220 VImage shrinkh( int hshrink, VOption *options = 0 ) const;
4221 
4228 VImage shrinkv( int vshrink, VOption *options = 0 ) const;
4229 
4235 VImage sign( VOption *options = 0 ) const;
4236 
4253 VImage similarity( VOption *options = 0 ) const;
4254 
4268 static VImage sines( int width, int height, VOption *options = 0 );
4269 
4281 VImage smartcrop( int width, int height, VOption *options = 0 ) const;
4282 
4288 VImage sobel( VOption *options = 0 ) const;
4289 
4296 VImage spcor( VImage ref, VOption *options = 0 ) const;
4297 
4303 VImage spectrum( VOption *options = 0 ) const;
4304 
4310 VImage stats( VOption *options = 0 ) const;
4311 
4326 VImage stdif( int width, int height, VOption *options = 0 ) const;
4327 
4339 VImage subsample( int xfac, int yfac, VOption *options = 0 ) const;
4340 
4347 VImage subtract( VImage right, VOption *options = 0 ) const;
4348 
4355 static VImage sum( std::vector<VImage> in, VOption *options = 0 );
4356 
4374 static VImage svgload( const char *filename, VOption *options = 0 );
4375 
4393 static VImage svgload_buffer( VipsBlob *buffer, VOption *options = 0 );
4394 
4412 static VImage svgload_source( VSource source, VOption *options = 0 );
4413 
4420 static VImage switch_image( std::vector<VImage> tests, VOption *options = 0 );
4421 
4433 static void system( const char *cmd_format, VOption *options = 0 );
4434 
4452 static VImage text( const char *text, VOption *options = 0 );
4453 
4473 static VImage thumbnail( const char *filename, int width, VOption *options = 0 );
4474 
4495 static VImage thumbnail_buffer( VipsBlob *buffer, int width, VOption *options = 0 );
4496 
4515 VImage thumbnail_image( int width, VOption *options = 0 ) const;
4516 
4537 static VImage thumbnail_source( VSource source, int width, VOption *options = 0 );
4538 
4557 static VImage tiffload( const char *filename, VOption *options = 0 );
4558 
4577 static VImage tiffload_buffer( VipsBlob *buffer, VOption *options = 0 );
4578 
4597 static VImage tiffload_source( VSource source, VOption *options = 0 );
4598 
4632 void tiffsave( const char *filename, VOption *options = 0 ) const;
4633 
4667 VipsBlob *tiffsave_buffer( VOption *options = 0 ) const;
4668 
4683 VImage tilecache( VOption *options = 0 ) const;
4684 
4703 static VImage tonelut( VOption *options = 0 );
4704 
4714 VImage transpose3d( VOption *options = 0 ) const;
4715 
4726 VImage unpremultiply( VOption *options = 0 ) const;
4727 
4742 static VImage vipsload( const char *filename, VOption *options = 0 );
4743 
4755 void vipssave( const char *filename, VOption *options = 0 ) const;
4756 
4775 static VImage webpload( const char *filename, VOption *options = 0 );
4776 
4795 static VImage webpload_buffer( VipsBlob *buffer, VOption *options = 0 );
4796 
4815 static VImage webpload_source( VSource source, VOption *options = 0 );
4816 
4839 void webpsave( const char *filename, VOption *options = 0 ) const;
4840 
4863 VipsBlob *webpsave_buffer( VOption *options = 0 ) const;
4864 
4887 void webpsave_target( VTarget target, VOption *options = 0 ) const;
4888 
4900 static VImage worley( int width, int height, VOption *options = 0 );
4901 
4912 VImage wrap( VOption *options = 0 ) const;
4913 
4927 static VImage xyz( int width, int height, VOption *options = 0 );
4928 
4940 static VImage zone( int width, int height, VOption *options = 0 );
4941 
4949 VImage zoom( int xfac, int yfac, VOption *options = 0 ) const;
4950 
4951 };
4952 
4953 VIPS_NAMESPACE_END
4954 
4955 #endif /*VIPS_VIMAGE_H*/
VImage::icc_transform
VImage icc_transform(const char *output_profile, VOption *options=0) const
Definition: vips-operators.cpp:1556
VImage::niftiload
static VImage niftiload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2275
VImage::labelregions
VImage labelregions(VOption *options=0) const
Definition: vips-operators.cpp:1730
VImage::shrinkh
VImage shrinkh(int hshrink, VOption *options=0) const
Definition: vips-operators.cpp:2978
VImage::CMYK2XYZ
VImage CMYK2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:17
VImage::replicate
VImage replicate(int across, int down, VOption *options=0) const
Definition: vips-operators.cpp:2790
VImage::fwfft
VImage fwfft(VOption *options=0) const
Definition: vips-operators.cpp:1140
VImage::jpegsave
void jpegsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1695
VImage::divide
VImage divide(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:836
VImage::radsave_target
void radsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2629
VImage::rawload
static VImage rawload(const char *filename, int width, int height, int bands, VOption *options=0)
Definition: vips-operators.cpp:2652
VImage::grey
static VImage grey(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:1280
VImage::linecache
VImage linecache(VOption *options=0) const
Definition: vips-operators.cpp:1756
VImage::gifload_source
static VImage gifload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1241
VImage::mask_gaussian
static VImage mask_gaussian(int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options=0)
Definition: vips-operators.cpp:1916
VImage::scRGB2sRGB
VImage scRGB2sRGB(VOption *options=0) const
Definition: vips-operators.cpp:2916
VImage::hist_ismonotonic
bool hist_ismonotonic(VOption *options=0) const
Definition: vips-operators.cpp:1445
VImage::HSV2sRGB
VImage HSV2sRGB(VOption *options=0) const
Definition: vips-operators.cpp:29
VImage::hist_norm
VImage hist_norm(VOption *options=0) const
Definition: vips-operators.cpp:1484
VImage::conv
VImage conv(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:626
VImage::openslideload
static VImage openslideload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2307
VImage::matrixsave_target
void matrixsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2134
VImage::scRGB2XYZ
VImage scRGB2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:2904
VImage::worley
static VImage worley(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3463
VImage::perlin
static VImage perlin(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:2368
VImage::multiply
VImage multiply(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:2262
VImage::hist_find_indexed
VImage hist_find_indexed(VImage index, VOption *options=0) const
Definition: vips-operators.cpp:1420
VImage::LabQ2sRGB
VImage LabQ2sRGB(VOption *options=0) const
Definition: vips-operators.cpp:137
VImage::ppmload
static VImage ppmload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2458
VImage::globalbalance
VImage globalbalance(VOption *options=0) const
Definition: vips-operators.cpp:1253
VImage::falsecolour
VImage falsecolour(VOption *options=0) const
Definition: vips-operators.cpp:1004
VImage::spcor
VImage spcor(VImage ref, VOption *options=0) const
Definition: vips-operators.cpp:3067
VImage::sequential
VImage sequential(VOption *options=0) const
Definition: vips-operators.cpp:2940
VImage::hist_cum
VImage hist_cum(VOption *options=0) const
Definition: vips-operators.cpp:1372
VImage::math2
VImage math2(VImage right, VipsOperationMath2 math2, VOption *options=0) const
Definition: vips-operators.cpp:2043
VImage::merge
VImage merge(VImage sec, VipsDirection direction, int dx, int dy, VOption *options=0) const
Definition: vips-operators.cpp:2168
VImage::complexget
VImage complexget(VipsOperationComplexget get, VOption *options=0) const
Definition: vips-operators.cpp:586
VImage::pngsave
void pngsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2430
VImage::gifload
static VImage gifload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1217
VImage::jpegsave_target
void jpegsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:1722
VImage::hist_entropy
double hist_entropy(VOption *options=0) const
Definition: vips-operators.cpp:1384
VImage::bandbool
VImage bandbool(VipsOperationBoolean boolean, VOption *options=0) const
Definition: vips-operators.cpp:319
VImage::system
static void system(const char *cmd_format, VOption *options=0)
Definition: vips-operators.cpp:3205
VImage::pngload_buffer
static VImage pngload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:2406
VImage::canny
VImage canny(VOption *options=0) const
Definition: vips-operators.cpp:482
VImage::LCh2CMC
VImage LCh2CMC(VOption *options=0) const
Definition: vips-operators.cpp:41
VImage::magickload
static VImage magickload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1781
VImage::radload_source
static VImage radload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2597
VImage::sRGB2HSV
VImage sRGB2HSV(VOption *options=0) const
Definition: vips-operators.cpp:2868
VImage::draw_circle
void draw_circle(std::vector< double > ink, int cx, int cy, int radius, VOption *options=0) const
Definition: vips-operators.cpp:849
VImage
Definition: VImage8.h:245
VImage::convsep
VImage convsep(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:691
VImage::radload
static VImage radload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2573
VImage::mosaic1
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:2228
VImage::math2_const
VImage math2_const(VipsOperationMath2 math2, std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:2057
VImage::stdif
VImage stdif(int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:3104
VImage::jpegload_source
static VImage jpegload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1683
VImage::LabQ2Lab
VImage LabQ2Lab(VOption *options=0) const
Definition: vips-operators.cpp:113
VImage::invfft
VImage invfft(VOption *options=0) const
Definition: vips-operators.cpp:1633
VImage::rawsave
void rawsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2667
VImage::matload
static VImage matload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2071
VImage::zoom
VImage zoom(int xfac, int yfac, VOption *options=0) const
Definition: vips-operators.cpp:3514
VImage::remainder
VImage remainder(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:2764
VImage::dE00
VImage dE00(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:785
VImage::LabS2Lab
VImage LabS2Lab(VOption *options=0) const
Definition: vips-operators.cpp:149
VImage::freqmult
VImage freqmult(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:1127
VImage::invert
VImage invert(VOption *options=0) const
Definition: vips-operators.cpp:1609
VImage::XYZ2Yxy
VImage XYZ2Yxy(VOption *options=0) const
Definition: vips-operators.cpp:197
VImage::mask_gaussian_band
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:1931
VImage::bandmean
VImage bandmean(VOption *options=0) const
Definition: vips-operators.cpp:369
VImage::recomb
VImage recomb(VImage m, VOption *options=0) const
Definition: vips-operators.cpp:2683
VImage::similarity
VImage similarity(VOption *options=0) const
Definition: vips-operators.cpp:3016
VImage::dECMC
VImage dECMC(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:811
VImage::heifsave_buffer
VipsBlob * heifsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1352
VImage::ppmsave
void ppmsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2482
VImage::webpsave_target
void webpsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:3455
VImage::profile_load
static VipsBlob * profile_load(const char *name, VOption *options=0)
Definition: vips-operators.cpp:2523
VImage::pdfload_source
static VImage pdfload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2343
VImage::mapim
VImage mapim(VImage index, VOption *options=0) const
Definition: vips-operators.cpp:1825
VImage::wrap
VImage wrap(VOption *options=0) const
Definition: vips-operators.cpp:3476
VImage::draw_rect
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::magickload_buffer
static VImage magickload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1793
VImage::dzsave_buffer
VipsBlob * dzsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:934
VImage::tiffload_source
static VImage tiffload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:3300
VImage::matrixload_source
static VImage matrixload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2107
VImage::zone
static VImage zone(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3501
VImage::icc_import
VImage icc_import(VOption *options=0) const
Definition: vips-operators.cpp:1544
VImage::black
static VImage black(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:405
VImage::csvload_source
static VImage csvload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:757
VImage::webpload
static VImage webpload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3399
VImage::Lab2XYZ
VImage Lab2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:101
VImage::csvload
static VImage csvload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:745
VImage::hist_find
VImage hist_find(VOption *options=0) const
Definition: vips-operators.cpp:1408
VImage::csvsave_target
void csvsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:777
VImage::stats
VImage stats(VOption *options=0) const
Definition: vips-operators.cpp:3092
VImage::complexform
VImage complexform(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:573
VImage::LabQ2LabS
VImage LabQ2LabS(VOption *options=0) const
Definition: vips-operators.cpp:125
VImage::vipsload
static VImage vipsload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3379
VImage::complex2
VImage complex2(VImage right, VipsOperationComplex2 cmplx, VOption *options=0) const
Definition: vips-operators.cpp:559
VImage::radsave_buffer
VipsBlob * radsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:2617
VImage::webpsave
void webpsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:3435
VImage::XYZ2scRGB
VImage XYZ2scRGB(VOption *options=0) const
Definition: vips-operators.cpp:209
VImage::sign
VImage sign(VOption *options=0) const
Definition: vips-operators.cpp:3004
VImage::XYZ2Lab
VImage XYZ2Lab(VOption *options=0) const
Definition: vips-operators.cpp:185
VImage::convf
VImage convf(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:665
VImage::join
VImage join(VImage in2, VipsDirection direction, VOption *options=0) const
Definition: vips-operators.cpp:1645
VImage::gamma
VImage gamma(VOption *options=0) const
Definition: vips-operators.cpp:1152
VImage::identity
static VImage identity(VOption *options=0)
Definition: vips-operators.cpp:1569
VImage::gaussmat
static VImage gaussmat(double sigma, double min_ampl, VOption *options=0)
Definition: vips-operators.cpp:1177
VImage::magicksave
void magicksave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1805
VImage::heifload_source
static VImage heifload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:1332
VImage::scale
VImage scale(VOption *options=0) const
Definition: vips-operators.cpp:2928
VImage::rad2float
VImage rad2float(VOption *options=0) const
Definition: vips-operators.cpp:2561
VImage::fitssave
void fitssave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1068
VImage::sharpen
VImage sharpen(VOption *options=0) const
Definition: vips-operators.cpp:2952
VImage::xyz
static VImage xyz(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3488
VImage::mask_butterworth_ring
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:1885
VImage::mask_gaussian_ring
static VImage mask_gaussian_ring(int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options=0)
Definition: vips-operators.cpp:1948
VImage::scRGB2BW
VImage scRGB2BW(VOption *options=0) const
Definition: vips-operators.cpp:2892
VImage::buildlut
VImage buildlut(VOption *options=0) const
Definition: vips-operators.cpp:446
VImage::avg
double avg(VOption *options=0) const
Definition: vips-operators.cpp:307
VImage::pngsave_target
void pngsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2450
VImage::radload_buffer
static VImage radload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:2585
VImage::draw_mask
void draw_mask(std::vector< double > ink, VImage mask, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:892
VImage::jpegload_buffer
static VImage jpegload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1671
VInterpolate
Definition: VInterpolate8.h:37
VImage::convasep
VImage convasep(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:652
VImage::magicksave_buffer
VipsBlob * magicksave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1813
VImage::mask_ideal_band
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:1978
VImage::mask_butterworth
static VImage mask_butterworth(int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options=0)
Definition: vips-operators.cpp:1851
VImage::jpegload
static VImage jpegload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1659
VImage::ppmload_source
static VImage ppmload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2470
VImage::rawsave_fd
void rawsave_fd(int fd, VOption *options=0) const
Definition: vips-operators.cpp:2675
VImage::matrixprint
void matrixprint(VOption *options=0) const
Definition: vips-operators.cpp:2119
VImage::maplut
VImage maplut(VImage lut, VOption *options=0) const
Definition: vips-operators.cpp:1838
VImage::find_trim
int find_trim(int *top, int *width, int *height, VOption *options=0) const
Definition: vips-operators.cpp:1041
VImage::sobel
VImage sobel(VOption *options=0) const
Definition: vips-operators.cpp:3055
VImage::invertlut
VImage invertlut(VOption *options=0) const
Definition: vips-operators.cpp:1621
VImage::reducev
VImage reducev(double vshrink, VOption *options=0) const
Definition: vips-operators.cpp:2723
VImage::flatten
VImage flatten(VOption *options=0) const
Definition: vips-operators.cpp:1076
VImage::mask_butterworth_band
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:1867
VImage::byteswap
VImage byteswap(VOption *options=0) const
Definition: vips-operators.cpp:458
VImage::morph
VImage morph(VImage mask, VipsOperationMorphology morph, VOption *options=0) const
Definition: vips-operators.cpp:2196
VImage::gravity
VImage gravity(VipsCompassDirection direction, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:1265
VImage::draw_flood
void draw_flood(std::vector< double > ink, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:860
VImage::mask_ideal_ring
static VImage mask_ideal_ring(int width, int height, double frequency_cutoff, double ringwidth, VOption *options=0)
Definition: vips-operators.cpp:1994
VImage::tiffload
static VImage tiffload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3276
VImage::grid
VImage grid(int tile_height, int across, int down, VOption *options=0) const
Definition: vips-operators.cpp:1293
VImage::boolean
VImage boolean(VImage right, VipsOperationBoolean boolean, VOption *options=0) const
Definition: vips-operators.cpp:418
VImage::bandunfold
VImage bandunfold(VOption *options=0) const
Definition: vips-operators.cpp:393
VImage::rank
VImage rank(int width, int height, int index, VOption *options=0) const
Definition: vips-operators.cpp:2637
VImage::heifload_buffer
static VImage heifload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1320
VImage::float2rad
VImage float2rad(VOption *options=0) const
Definition: vips-operators.cpp:1101
VImage::affine
VImage affine(std::vector< double > matrix, VOption *options=0) const
Definition: vips-operators.cpp:258
VImage::jpegsave_buffer
VipsBlob * jpegsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:1703
VImage::LCh2Lab
VImage LCh2Lab(VOption *options=0) const
Definition: vips-operators.cpp:53
VImage::draw_line
void draw_line(std::vector< double > ink, int x1, int y1, int x2, int y2, VOption *options=0) const
Definition: vips-operators.cpp:880
VImage::hist_local
VImage hist_local(int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:1457
VImage::pdfload
static VImage pdfload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2319
VImage::hist_equal
VImage hist_equal(VOption *options=0) const
Definition: vips-operators.cpp:1396
VImage::match
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:2009
VImage::extract_area
VImage extract_area(int left, int top, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:962
VImage::heifsave
void heifsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:1344
VImage::sum
static VImage sum(std::vector< VImage > in, VOption *options=0)
Definition: vips-operators.cpp:3145
VImage::radsave
void radsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2609
VError
Definition: VError8.h:42
VImage::math
VImage math(VipsOperationMath math, VOption *options=0) const
Definition: vips-operators.cpp:2030
VImage::Yxy2XYZ
VImage Yxy2XYZ(VOption *options=0) const
Definition: vips-operators.cpp:221
VImage::rot
VImage rot(VipsAngle angle, VOption *options=0) const
Definition: vips-operators.cpp:2817
VImage::premultiply
VImage premultiply(VOption *options=0) const
Definition: vips-operators.cpp:2498
VImage::Lab2LabQ
VImage Lab2LabQ(VOption *options=0) const
Definition: vips-operators.cpp:77
VImage::mosaic
VImage mosaic(VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options=0) const
Definition: vips-operators.cpp:2210
VImage::dE76
VImage dE76(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:798
VImage::bandrank
static VImage bandrank(std::vector< VImage > in, VOption *options=0)
Definition: vips-operators.cpp:381
VImage::composite2
VImage composite2(VImage overlay, VipsBlendMode mode, VOption *options=0) const
Definition: vips-operators.cpp:612
VImage::draw_smudge
void draw_smudge(int left, int top, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:915
VImage::gaussblur
VImage gaussblur(double sigma, VOption *options=0) const
Definition: vips-operators.cpp:1164
VImage::complex
VImage complex(VipsOperationComplex cmplx, VOption *options=0) const
Definition: vips-operators.cpp:546
VImage::phasecor
VImage phasecor(VImage in2, VOption *options=0) const
Definition: vips-operators.cpp:2381
VImage::webpsave_buffer
VipsBlob * webpsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:3443
VImage::min
double min(VOption *options=0) const
Definition: vips-operators.cpp:2184
VImage::svgload_buffer
static VImage svgload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:3169
VImage::Lab2LCh
VImage Lab2LCh(VOption *options=0) const
Definition: vips-operators.cpp:65
VImage::CMC2LCh
VImage CMC2LCh(VOption *options=0) const
Definition: vips-operators.cpp:5
VImage::XYZ2CMYK
VImage XYZ2CMYK(VOption *options=0) const
Definition: vips-operators.cpp:173
VImage::relational
VImage relational(VImage right, VipsOperationRelational relational, VOption *options=0) const
Definition: vips-operators.cpp:2736
VImage::csvsave
void csvsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:769
VImage::flip
VImage flip(VipsDirection direction, VOption *options=0) const
Definition: vips-operators.cpp:1088
VImage::text
static VImage text(const char *text, VOption *options=0)
Definition: vips-operators.cpp:3212
VImage::percent
int percent(double percent, VOption *options=0) const
Definition: vips-operators.cpp:2355
VImage::quadratic
VImage quadratic(VImage coeff, VOption *options=0) const
Definition: vips-operators.cpp:2548
VImage::resize
VImage resize(double scale, VOption *options=0) const
Definition: vips-operators.cpp:2804
VImage::subsample
VImage subsample(int xfac, int yfac, VOption *options=0) const
Definition: vips-operators.cpp:3118
VObject
Definition: VImage8.h:60
VImage::gifload_buffer
static VImage gifload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:1229
VImage::hist_find_ndim
VImage hist_find_ndim(VOption *options=0) const
Definition: vips-operators.cpp:1433
VImage::convi
VImage convi(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:678
VImage::round
VImage round(VipsOperationRound round, VOption *options=0) const
Definition: vips-operators.cpp:2855
VImage::icc_export
VImage icc_export(VOption *options=0) const
Definition: vips-operators.cpp:1532
VImage::mask_ideal
static VImage mask_ideal(int width, int height, double frequency_cutoff, VOption *options=0)
Definition: vips-operators.cpp:1964
VImage::LabS2LabQ
VImage LabS2LabQ(VOption *options=0) const
Definition: vips-operators.cpp:161
VImage::project
VImage project(VImage *rows, VOption *options=0) const
Definition: vips-operators.cpp:2535
VImage::relational_const
VImage relational_const(VipsOperationRelational relational, std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:2750
VImage::getpoint
std::vector< double > getpoint(int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:1203
VImage::sines
static VImage sines(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:3028
VImage::msb
VImage msb(VOption *options=0) const
Definition: vips-operators.cpp:2250
VImage::hist_plot
VImage hist_plot(VOption *options=0) const
Definition: vips-operators.cpp:1496
VImage::spectrum
VImage spectrum(VOption *options=0) const
Definition: vips-operators.cpp:3080
VImage::webpload_buffer
static VImage webpload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:3411
VSource
Definition: VConnection8.h:37
VImage::thumbnail_source
static VImage thumbnail_source(VSource source, int width, VOption *options=0)
Definition: vips-operators.cpp:3263
VImage::gaussnoise
static VImage gaussnoise(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:1190
VImage::fill_nearest
VImage fill_nearest(VOption *options=0) const
Definition: vips-operators.cpp:1029
VImage::add
VImage add(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:245
VImage::pngload_source
static VImage pngload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:2418
VImage::pdfload_buffer
static VImage pdfload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:2331
VImage::compass
VImage compass(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:533
VImage::svgload
static VImage svgload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:3157
VImage::matrixinvert
VImage matrixinvert(VOption *options=0) const
Definition: vips-operators.cpp:2083
VImage::autorot
VImage autorot(VOption *options=0) const
Definition: vips-operators.cpp:295
VImage::webpload_source
static VImage webpload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:3423
VImage::transpose3d
VImage transpose3d(VOption *options=0) const
Definition: vips-operators.cpp:3355
VImage::copy
VImage copy(VOption *options=0) const
Definition: vips-operators.cpp:704
VImage::reduceh
VImage reduceh(double hshrink, VOption *options=0) const
Definition: vips-operators.cpp:2710
VImage::extract_band
VImage extract_band(int band, VOption *options=0) const
Definition: vips-operators.cpp:978
VImage::tilecache
VImage tilecache(VOption *options=0) const
Definition: vips-operators.cpp:3332
VImage::tiffsave_buffer
VipsBlob * tiffsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:3320
VOption
Definition: VImage8.h:175
VImage::remainder_const
VImage remainder_const(std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:2777
VImage::boolean_const
VImage boolean_const(VipsOperationBoolean boolean, std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:432
VImage::svgload_source
static VImage svgload_source(VSource source, VOption *options=0)
Definition: vips-operators.cpp:3181
VImage::fitsload
static VImage fitsload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1056
VImage::heifload
static VImage heifload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:1308
VImage::shrink
VImage shrink(double hshrink, double vshrink, VOption *options=0) const
Definition: vips-operators.cpp:2964
VImage::dzsave
void dzsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:926
VImage::analyzeload
static VImage analyzeload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:271
VImage::eye
static VImage eye(int width, int height, VOption *options=0)
Definition: vips-operators.cpp:991
VImage::bandfold
VImage bandfold(VOption *options=0) const
Definition: vips-operators.cpp:332
VImage::tiffsave
void tiffsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:3312
VImage::hough_line
VImage hough_line(VOption *options=0) const
Definition: vips-operators.cpp:1520
VImage::abs
VImage abs(VOption *options=0) const
Definition: vips-operators.cpp:233
VImage::cast
VImage cast(VipsBandFormat format, VOption *options=0) const
Definition: vips-operators.cpp:507
VImage::hough_circle
VImage hough_circle(VOption *options=0) const
Definition: vips-operators.cpp:1508
VImage::thumbnail_image
VImage thumbnail_image(int width, VOption *options=0) const
Definition: vips-operators.cpp:3250
VImage::rot45
VImage rot45(VOption *options=0) const
Definition: vips-operators.cpp:2830
VImage::crop
VImage crop(int left, int top, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:729
VTarget
Definition: VConnection8.h:69
VImage::vipssave
void vipssave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:3391
VImage::fastcor
VImage fastcor(VImage ref, VOption *options=0) const
Definition: vips-operators.cpp:1016
VImage::matrixsave
void matrixsave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2126
VImage::reduce
VImage reduce(double hshrink, double vshrink, VOption *options=0) const
Definition: vips-operators.cpp:2696
VImage::rotate
VImage rotate(double angle, VOption *options=0) const
Definition: vips-operators.cpp:2842
VImage::jpegsave_mime
void jpegsave_mime(VOption *options=0) const
Definition: vips-operators.cpp:1715
VImage::tonelut
static VImage tonelut(VOption *options=0)
Definition: vips-operators.cpp:3344
VImage::fractsurf
static VImage fractsurf(int width, int height, double fractal_dimension, VOption *options=0)
Definition: vips-operators.cpp:1113
VImage::case_image
VImage case_image(std::vector< VImage > cases, VOption *options=0) const
Definition: vips-operators.cpp:494
VImage::shrinkv
VImage shrinkv(int vshrink, VOption *options=0) const
Definition: vips-operators.cpp:2991
VImage::openexrload
static VImage openexrload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2295
VImage::hist_match
VImage hist_match(VImage ref, VOption *options=0) const
Definition: vips-operators.cpp:1471
VImage::niftisave
void niftisave(const char *filename, VOption *options=0) const
Definition: vips-operators.cpp:2287
VImage::Lab2LabS
VImage Lab2LabS(VOption *options=0) const
Definition: vips-operators.cpp:89
VImage::max
double max(VOption *options=0) const
Definition: vips-operators.cpp:2142
VImage::embed
VImage embed(int x, int y, int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:946
VImage::mask_fractal
static VImage mask_fractal(int width, int height, double fractal_dimension, VOption *options=0)
Definition: vips-operators.cpp:1902
VImage::subtract
VImage subtract(VImage right, VOption *options=0) const
Definition: vips-operators.cpp:3132
VImage::cache
VImage cache(VOption *options=0) const
Definition: vips-operators.cpp:470
VImage::thumbnail_buffer
static VImage thumbnail_buffer(VipsBlob *buffer, int width, VOption *options=0)
Definition: vips-operators.cpp:3237
VImage::pngload
static VImage pngload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2394
VImage::tiffload_buffer
static VImage tiffload_buffer(VipsBlob *buffer, VOption *options=0)
Definition: vips-operators.cpp:3288
VImage::matrixload
static VImage matrixload(const char *filename, VOption *options=0)
Definition: vips-operators.cpp:2095
VImage::sRGB2scRGB
VImage sRGB2scRGB(VOption *options=0) const
Definition: vips-operators.cpp:2880
VImage::insert
VImage insert(VImage sub, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:1594
VImage::deviate
double deviate(VOption *options=0) const
Definition: vips-operators.cpp:824
VImage::heifsave_target
void heifsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:1364
VImage::conva
VImage conva(VImage mask, VOption *options=0) const
Definition: vips-operators.cpp:639
VImage::unpremultiply
VImage unpremultiply(VOption *options=0) const
Definition: vips-operators.cpp:3367
VImage::thumbnail
static VImage thumbnail(const char *filename, int width, VOption *options=0)
Definition: vips-operators.cpp:3224
VImage::profile
VImage profile(VImage *rows, VOption *options=0) const
Definition: vips-operators.cpp:2510
VImage::bandjoin_const
VImage bandjoin_const(std::vector< double > c, VOption *options=0) const
Definition: vips-operators.cpp:356
VImage::ppmsave_target
void ppmsave_target(VTarget target, VOption *options=0) const
Definition: vips-operators.cpp:2490
VImage::pngsave_buffer
VipsBlob * pngsave_buffer(VOption *options=0) const
Definition: vips-operators.cpp:2438
VImage::colourspace
VImage colourspace(VipsInterpretation space, VOption *options=0) const
Definition: vips-operators.cpp:520
VImage::logmat
static VImage logmat(double sigma, double min_ampl, VOption *options=0)
Definition: vips-operators.cpp:1768
VImage::measure
VImage measure(int h, int v, VOption *options=0) const
Definition: vips-operators.cpp:2154
VImage::arrayjoin
static VImage arrayjoin(std::vector< VImage > in, VOption *options=0)
Definition: vips-operators.cpp:283
VImage::draw_image
void draw_image(VImage sub, int x, int y, VOption *options=0) const
Definition: vips-operators.cpp:870
VImage::smartcrop
VImage smartcrop(int width, int height, VOption *options=0) const
Definition: vips-operators.cpp:3041
VImage::countlines
double countlines(VipsDirection direction, VOption *options=0) const
Definition: vips-operators.cpp:716
VImage::switch_image
static VImage switch_image(std::vector< VImage > tests, VOption *options=0)
Definition: vips-operators.cpp:3193