vips-cpp 8.11
libvips C++ binding
Loading...
Searching...
No Matches
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
41VIPS_NAMESPACE_START
42
43/* Small utility things.
44 */
45
46VIPS_CPLUSPLUS_API std::vector<double> to_vectorv( int n, ... );
47VIPS_CPLUSPLUS_API std::vector<double> to_vector( double value );
48VIPS_CPLUSPLUS_API std::vector<double> to_vector( int n, double array[] );
49VIPS_CPLUSPLUS_API std::vector<double> negate( std::vector<double> value );
50VIPS_CPLUSPLUS_API std::vector<double> invert( std::vector<double> value );
51
56enum VSteal {
57 NOSTEAL = 0,
58 STEAL = 1
59};
60
68{
69private:
70 // can be NULL, see eg. VObject()
71 VipsObject *vobject;
72
73public:
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 *
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
190class VIPS_CPLUSPLUS_API VImage;
191class VIPS_CPLUSPLUS_API VInterpolate;
192class VIPS_CPLUSPLUS_API VSource;
193class VIPS_CPLUSPLUS_API VTarget;
194class VIPS_CPLUSPLUS_API VOption;
195
217class VOption {
218private:
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
254public:
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
404class VImage : public VObject
405{
406public:
407 using VObject::is_null;
408
415 VImage( VipsImage *image, VSteal steal = STEAL ) :
416 VObject( (VipsObject *) image, steal )
417 {
418 }
419
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
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
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 {
1192 options ) );
1193 }
1194
1200 VImage
1201 erode( VImage mask, VOption *options = 0 ) const
1202 {
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 {
1430 to_vector( other ), options ) );
1431 }
1432
1436 VImage
1437 pow( std::vector<double> other, VOption *options = 0 ) const
1438 {
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 {
1459 to_vector( other ), options ) );
1460 }
1461
1465 VImage
1466 wop( std::vector<double> other, VOption *options = 0 ) const
1467 {
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 {
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
1544 operator+( const VImage a, const VImage b );
1546 operator+( const double a, const VImage b );
1548 operator+( const VImage a, const double b );
1550 operator+( const std::vector<double> a, const VImage b );
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
1562 operator-( const VImage a, const VImage b );
1564 operator-( const double a, const VImage b );
1566 operator-( const VImage a, const double b );
1568 operator-( const std::vector<double> a, const VImage b );
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
1580 operator-( const VImage a );
1581
1583 operator*( const VImage a, const VImage b );
1585 operator*( const double a, const VImage b );
1587 operator*( const VImage a, const double b );
1589 operator*( const std::vector<double> a, const VImage b );
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
1601 operator/( const VImage a, const VImage b );
1603 operator/( const double a, const VImage b );
1605 operator/( const VImage a, const double b );
1607 operator/( const std::vector<double> a, const VImage b );
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
1619 operator%( const VImage a, const VImage b );
1621 operator%( const VImage a, const double b );
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
1633 operator<( const VImage a, const VImage b );
1635 operator<( const double a, const VImage b );
1637 operator<( const VImage a, const double b );
1639 operator<( const std::vector<double> a, const VImage b );
1641 operator<( const VImage a, const std::vector<double> b );
1642
1644 operator<=( const VImage a, const VImage b );
1646 operator<=( const double a, const VImage b );
1648 operator<=( const VImage a, const double b );
1650 operator<=( const std::vector<double> a, const VImage b );
1652 operator<=( const VImage a, const std::vector<double> b );
1653
1655 operator>( const VImage a, const VImage b );
1657 operator>( const double a, const VImage b );
1659 operator>( const VImage a, const double b );
1661 operator>( const std::vector<double> a, const VImage b );
1663 operator>( const VImage a, const std::vector<double> b );
1664
1666 operator>=( const VImage a, const VImage b );
1668 operator>=( const double a, const VImage b );
1670 operator>=( const VImage a, const double b );
1672 operator>=( const std::vector<double> a, const VImage b );
1674 operator>=( const VImage a, const std::vector<double> b );
1675
1677 operator==( const VImage a, const VImage b );
1679 operator==( const double a, const VImage b );
1681 operator==( const VImage a, const double b );
1683 operator==( const std::vector<double> a, const VImage b );
1685 operator==( const VImage a, const std::vector<double> b );
1686
1688 operator!=( const VImage a, const VImage b );
1690 operator!=( const double a, const VImage b );
1692 operator!=( const VImage a, const double b );
1694 operator!=( const std::vector<double> a, const VImage b );
1696 operator!=( const VImage a, const std::vector<double> b );
1697
1699 operator&( const VImage a, const VImage b );
1701 operator&( const double a, const VImage b );
1703 operator&( const VImage a, const double b );
1705 operator&( const std::vector<double> a, const VImage b );
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
1717 operator|( const VImage a, const VImage b );
1719 operator|( const double a, const VImage b );
1721 operator|( const VImage a, const double b );
1723 operator|( const std::vector<double> a, const VImage b );
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
1735 operator^( const VImage a, const VImage b );
1737 operator^( const double a, const VImage b );
1739 operator^( const VImage a, const double b );
1741 operator^( const std::vector<double> a, const VImage b );
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
1753 operator<<( const VImage a, const VImage b );
1755 operator<<( const VImage a, const double b );
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
1767 operator>>( const VImage a, const VImage b );
1769 operator>>( const VImage a, const double b );
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
1800VImage CMC2LCh( VOption *options = 0 ) const;
1801
1807VImage CMYK2XYZ( VOption *options = 0 ) const;
1808
1814VImage HSV2sRGB( VOption *options = 0 ) const;
1815
1821VImage LCh2CMC( VOption *options = 0 ) const;
1822
1828VImage LCh2Lab( VOption *options = 0 ) const;
1829
1835VImage Lab2LCh( VOption *options = 0 ) const;
1836
1842VImage Lab2LabQ( VOption *options = 0 ) const;
1843
1849VImage Lab2LabS( VOption *options = 0 ) const;
1850
1860VImage Lab2XYZ( VOption *options = 0 ) const;
1861
1867VImage LabQ2Lab( VOption *options = 0 ) const;
1868
1874VImage LabQ2LabS( VOption *options = 0 ) const;
1875
1881VImage LabQ2sRGB( VOption *options = 0 ) const;
1882
1888VImage LabS2Lab( VOption *options = 0 ) const;
1889
1895VImage LabS2LabQ( VOption *options = 0 ) const;
1896
1902VImage XYZ2CMYK( VOption *options = 0 ) const;
1903
1913VImage XYZ2Lab( VOption *options = 0 ) const;
1914
1920VImage XYZ2Yxy( VOption *options = 0 ) const;
1921
1927VImage XYZ2scRGB( VOption *options = 0 ) const;
1928
1934VImage Yxy2XYZ( VOption *options = 0 ) const;
1935
1941VImage abs( VOption *options = 0 ) const;
1942
1949VImage add( VImage right, VOption *options = 0 ) const;
1950
1969VImage affine( std::vector<double> matrix, VOption *options = 0 ) const;
1970
1985static VImage analyzeload( const char *filename, VOption *options = 0 );
1986
2003static VImage arrayjoin( std::vector<VImage> in, VOption *options = 0 );
2004
2010VImage autorot( VOption *options = 0 ) const;
2011
2017double avg( VOption *options = 0 ) const;
2018
2025VImage bandbool( VipsOperationBoolean boolean, VOption *options = 0 ) const;
2026
2036VImage bandfold( VOption *options = 0 ) const;
2037
2044static VImage bandjoin( std::vector<VImage> in, VOption *options = 0 );
2045
2052VImage bandjoin_const( std::vector<double> c, VOption *options = 0 ) const;
2053
2059VImage bandmean( VOption *options = 0 ) const;
2060
2071static VImage bandrank( std::vector<VImage> in, VOption *options = 0 );
2072
2082VImage bandunfold( VOption *options = 0 ) const;
2083
2095static VImage black( int width, int height, VOption *options = 0 );
2096
2104VImage boolean( VImage right, VipsOperationBoolean boolean, VOption *options = 0 ) const;
2105
2113VImage boolean_const( VipsOperationBoolean boolean, std::vector<double> c, VOption *options = 0 ) const;
2114
2120VImage buildlut( VOption *options = 0 ) const;
2121
2127VImage byteswap( VOption *options = 0 ) const;
2128
2140VImage cache( VOption *options = 0 ) const;
2141
2152VImage canny( VOption *options = 0 ) const;
2153
2160VImage case_image( std::vector<VImage> cases, VOption *options = 0 ) const;
2161
2172VImage cast( VipsBandFormat format, VOption *options = 0 ) const;
2173
2184VImage colourspace( VipsInterpretation space, VOption *options = 0 ) const;
2185
2201VImage compass( VImage mask, VOption *options = 0 ) const;
2202
2209VImage complex( VipsOperationComplex cmplx, VOption *options = 0 ) const;
2210
2219
2226VImage complexform( VImage right, VOption *options = 0 ) const;
2227
2234VImage complexget( VipsOperationComplexget get, VOption *options = 0 ) const;
2235
2250static VImage composite( std::vector<VImage> in, std::vector<int> mode, VOption *options = 0 );
2251
2266VImage composite2( VImage overlay, VipsBlendMode mode, VOption *options = 0 ) const;
2267
2280VImage conv( VImage mask, VOption *options = 0 ) const;
2281
2293VImage conva( VImage mask, VOption *options = 0 ) const;
2294
2305VImage convasep( VImage mask, VOption *options = 0 ) const;
2306
2313VImage convf( VImage mask, VOption *options = 0 ) const;
2314
2321VImage convi( VImage mask, VOption *options = 0 ) const;
2322
2335VImage convsep( VImage mask, VOption *options = 0 ) const;
2336
2356VImage copy( VOption *options = 0 ) const;
2357
2364double countlines( VipsDirection direction, VOption *options = 0 ) const;
2365
2375VImage crop( int left, int top, int width, int height, VOption *options = 0 ) const;
2376
2395static VImage csvload( const char *filename, VOption *options = 0 );
2396
2415static VImage csvload_source( VSource source, VOption *options = 0 );
2416
2429void csvsave( const char *filename, VOption *options = 0 ) const;
2430
2443void csvsave_target( VTarget target, VOption *options = 0 ) const;
2444
2451VImage dE00( VImage right, VOption *options = 0 ) const;
2452
2459VImage dE76( VImage right, VOption *options = 0 ) const;
2460
2467VImage dECMC( VImage right, VOption *options = 0 ) const;
2468
2474double deviate( VOption *options = 0 ) const;
2475
2482VImage divide( VImage right, VOption *options = 0 ) const;
2483
2496void draw_circle( std::vector<double> ink, int cx, int cy, int radius, VOption *options = 0 ) const;
2497
2510void draw_flood( std::vector<double> ink, int x, int y, VOption *options = 0 ) const;
2511
2523void draw_image( VImage sub, int x, int y, VOption *options = 0 ) const;
2524
2534void draw_line( std::vector<double> ink, int x1, int y1, int x2, int y2, VOption *options = 0 ) const;
2535
2544void draw_mask( std::vector<double> ink, VImage mask, int x, int y, VOption *options = 0 ) const;
2545
2559void draw_rect( std::vector<double> ink, int left, int top, int width, int height, VOption *options = 0 ) const;
2560
2569void draw_smudge( int left, int top, int width, int height, VOption *options = 0 ) const;
2570
2600void dzsave( const char *filename, VOption *options = 0 ) const;
2601
2631VipsBlob *dzsave_buffer( VOption *options = 0 ) const;
2632
2647VImage embed( int x, int y, int width, int height, VOption *options = 0 ) const;
2648
2658VImage extract_area( int left, int top, int width, int height, VOption *options = 0 ) const;
2659
2670VImage extract_band( int band, VOption *options = 0 ) const;
2671
2684static VImage eye( int width, int height, VOption *options = 0 );
2685
2691VImage falsecolour( VOption *options = 0 ) const;
2692
2699VImage fastcor( VImage ref, VOption *options = 0 ) const;
2700
2706VImage fill_nearest( VOption *options = 0 ) const;
2707
2721int find_trim( int *top, int *width, int *height, VOption *options = 0 ) const;
2722
2737static VImage fitsload( const char *filename, VOption *options = 0 );
2738
2753static VImage fitsload_source( VSource source, VOption *options = 0 );
2754
2766void fitssave( const char *filename, VOption *options = 0 ) const;
2767
2778VImage flatten( VOption *options = 0 ) const;
2779
2786VImage flip( VipsDirection direction, VOption *options = 0 ) const;
2787
2793VImage float2rad( VOption *options = 0 ) const;
2794
2803static VImage fractsurf( int width, int height, double fractal_dimension, VOption *options = 0 );
2804
2811VImage freqmult( VImage mask, VOption *options = 0 ) const;
2812
2818VImage fwfft( VOption *options = 0 ) const;
2819
2829VImage gamma( VOption *options = 0 ) const;
2830
2842VImage gaussblur( double sigma, VOption *options = 0 ) const;
2843
2857static VImage gaussmat( double sigma, double min_ampl, VOption *options = 0 );
2858
2872static VImage gaussnoise( int width, int height, VOption *options = 0 );
2873
2881std::vector<double> getpoint( int x, int y, VOption *options = 0 ) const;
2882
2899static VImage gifload( const char *filename, VOption *options = 0 );
2900
2917static VImage gifload_buffer( VipsBlob *buffer, VOption *options = 0 );
2918
2935static VImage gifload_source( VSource source, VOption *options = 0 );
2936
2947VImage globalbalance( VOption *options = 0 ) const;
2948
2962VImage gravity( VipsCompassDirection direction, int width, int height, VOption *options = 0 ) const;
2963
2975static VImage grey( int width, int height, VOption *options = 0 );
2976
2985VImage grid( int tile_height, int across, int down, VOption *options = 0 ) const;
2986
3005static VImage heifload( const char *filename, VOption *options = 0 );
3006
3025static VImage heifload_buffer( VipsBlob *buffer, VOption *options = 0 );
3026
3045static VImage heifload_source( VSource source, VOption *options = 0 );
3046
3063void heifsave( const char *filename, VOption *options = 0 ) const;
3064
3081VipsBlob *heifsave_buffer( VOption *options = 0 ) const;
3082
3099void heifsave_target( VTarget target, VOption *options = 0 ) const;
3100
3106VImage hist_cum( VOption *options = 0 ) const;
3107
3113double hist_entropy( VOption *options = 0 ) const;
3114
3124VImage hist_equal( VOption *options = 0 ) const;
3125
3135VImage hist_find( VOption *options = 0 ) const;
3136
3147VImage hist_find_indexed( VImage index, VOption *options = 0 ) const;
3148
3158VImage hist_find_ndim( VOption *options = 0 ) const;
3159
3165bool hist_ismonotonic( VOption *options = 0 ) const;
3166
3178VImage hist_local( int width, int height, VOption *options = 0 ) const;
3179
3186VImage hist_match( VImage ref, VOption *options = 0 ) const;
3187
3193VImage hist_norm( VOption *options = 0 ) const;
3194
3200VImage hist_plot( VOption *options = 0 ) const;
3201
3213VImage hough_circle( VOption *options = 0 ) const;
3214
3225VImage hough_line( VOption *options = 0 ) const;
3226
3240VImage icc_export( VOption *options = 0 ) const;
3241
3255VImage icc_import( VOption *options = 0 ) const;
3256
3272VImage icc_transform( const char *output_profile, VOption *options = 0 ) const;
3273
3285static VImage identity( VOption *options = 0 );
3286
3298VImage ifthenelse( VImage in1, VImage in2, VOption *options = 0 ) const;
3299
3313VImage insert( VImage sub, int x, int y, VOption *options = 0 ) const;
3314
3320VImage invert( VOption *options = 0 ) const;
3321
3331VImage invertlut( VOption *options = 0 ) const;
3332
3342VImage invfft( VOption *options = 0 ) const;
3343
3358VImage join( VImage in2, VipsDirection direction, VOption *options = 0 ) const;
3359
3375static VImage jp2kload( const char *filename, VOption *options = 0 );
3376
3392static VImage jp2kload_buffer( VipsBlob *buffer, VOption *options = 0 );
3393
3409static VImage jp2kload_source( VSource source, VOption *options = 0 );
3410
3427void jp2ksave( const char *filename, VOption *options = 0 ) const;
3428
3445VipsBlob *jp2ksave_buffer( VOption *options = 0 ) const;
3446
3463void jp2ksave_target( VTarget target, VOption *options = 0 ) const;
3464
3481static VImage jpegload( const char *filename, VOption *options = 0 );
3482
3499static VImage jpegload_buffer( VipsBlob *buffer, VOption *options = 0 );
3500
3517static VImage jpegload_source( VSource source, VOption *options = 0 );
3518
3540void jpegsave( const char *filename, VOption *options = 0 ) const;
3541
3563VipsBlob *jpegsave_buffer( VOption *options = 0 ) const;
3564
3585void jpegsave_mime( VOption *options = 0 ) const;
3586
3608void jpegsave_target( VTarget target, VOption *options = 0 ) const;
3609
3624static VImage jxlload( const char *filename, VOption *options = 0 );
3625
3640static VImage jxlload_buffer( VipsBlob *buffer, VOption *options = 0 );
3641
3656static VImage jxlload_source( VSource source, VOption *options = 0 );
3657
3674void jxlsave( const char *filename, VOption *options = 0 ) const;
3675
3692VipsBlob *jxlsave_buffer( VOption *options = 0 ) const;
3693
3710void jxlsave_target( VTarget target, VOption *options = 0 ) const;
3711
3717VImage labelregions( VOption *options = 0 ) const;
3718
3730VImage linear( std::vector<double> a, std::vector<double> b, VOption *options = 0 ) const;
3731
3744VImage linecache( VOption *options = 0 ) const;
3745
3759static VImage logmat( double sigma, double min_ampl, VOption *options = 0 );
3760
3779static VImage magickload( const char *filename, VOption *options = 0 );
3780
3799static VImage magickload_buffer( VipsBlob *buffer, VOption *options = 0 );
3800
3816void magicksave( const char *filename, VOption *options = 0 ) const;
3817
3833VipsBlob *magicksave_buffer( VOption *options = 0 ) const;
3834
3845VImage mapim( VImage index, VOption *options = 0 ) const;
3846
3857VImage maplut( VImage lut, VOption *options = 0 ) const;
3858
3876static VImage mask_butterworth( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 );
3877
3897static 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
3917static VImage mask_butterworth_ring( int width, int height, double order, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 );
3918
3934static VImage mask_fractal( int width, int height, double fractal_dimension, VOption *options = 0 );
3935
3952static VImage mask_gaussian( int width, int height, double frequency_cutoff, double amplitude_cutoff, VOption *options = 0 );
3953
3972static 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
3991static VImage mask_gaussian_ring( int width, int height, double frequency_cutoff, double amplitude_cutoff, double ringwidth, VOption *options = 0 );
3992
4008static VImage mask_ideal( int width, int height, double frequency_cutoff, VOption *options = 0 );
4009
4027static VImage mask_ideal_band( int width, int height, double frequency_cutoff_x, double frequency_cutoff_y, double radius, VOption *options = 0 );
4028
4045static VImage mask_ideal_ring( int width, int height, double frequency_cutoff, double ringwidth, VOption *options = 0 );
4046
4068VImage match( VImage sec, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, VOption *options = 0 ) const;
4069
4076VImage math( VipsOperationMath math, VOption *options = 0 ) const;
4077
4085VImage math2( VImage right, VipsOperationMath2 math2, VOption *options = 0 ) const;
4086
4094VImage math2_const( VipsOperationMath2 math2, std::vector<double> c, VOption *options = 0 ) const;
4095
4110static VImage matload( const char *filename, VOption *options = 0 );
4111
4117VImage matrixinvert( VOption *options = 0 ) const;
4118
4133static VImage matrixload( const char *filename, VOption *options = 0 );
4134
4149static VImage matrixload_source( VSource source, VOption *options = 0 );
4150
4161void matrixprint( VOption *options = 0 ) const;
4162
4174void matrixsave( const char *filename, VOption *options = 0 ) const;
4175
4187void matrixsave_target( VTarget target, VOption *options = 0 ) const;
4188
4198double max( VOption *options = 0 ) const;
4199
4214VImage measure( int h, int v, VOption *options = 0 ) const;
4215
4229VImage merge( VImage sec, VipsDirection direction, int dx, int dy, VOption *options = 0 ) const;
4230
4240double min( VOption *options = 0 ) const;
4241
4250
4269VImage mosaic( VImage sec, VipsDirection direction, int xref, int yref, int xsec, int ysec, VOption *options = 0 ) const;
4270
4295VImage 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
4306VImage msb( VOption *options = 0 ) const;
4307
4314VImage multiply( VImage right, VOption *options = 0 ) const;
4315
4330static VImage niftiload( const char *filename, VOption *options = 0 );
4331
4346static VImage niftiload_source( VSource source, VOption *options = 0 );
4347
4359void niftisave( const char *filename, VOption *options = 0 ) const;
4360
4375static VImage openexrload( const char *filename, VOption *options = 0 );
4376
4395static VImage openslideload( const char *filename, VOption *options = 0 );
4396
4415static VImage openslideload_source( VSource source, VOption *options = 0 );
4416
4436static VImage pdfload( const char *filename, VOption *options = 0 );
4437
4457static VImage pdfload_buffer( VipsBlob *buffer, VOption *options = 0 );
4458
4478static VImage pdfload_source( VSource source, VOption *options = 0 );
4479
4486int percent( double percent, VOption *options = 0 ) const;
4487
4501static VImage perlin( int width, int height, VOption *options = 0 );
4502
4509VImage phasecor( VImage in2, VOption *options = 0 ) const;
4510
4526static VImage pngload( const char *filename, VOption *options = 0 );
4527
4543static VImage pngload_buffer( VipsBlob *buffer, VOption *options = 0 );
4544
4560static VImage pngload_source( VSource source, VOption *options = 0 );
4561
4582void pngsave( const char *filename, VOption *options = 0 ) const;
4583
4604VipsBlob *pngsave_buffer( VOption *options = 0 ) const;
4605
4626void pngsave_target( VTarget target, VOption *options = 0 ) const;
4627
4642static VImage ppmload( const char *filename, VOption *options = 0 );
4643
4658static VImage ppmload_source( VSource source, VOption *options = 0 );
4659
4674void ppmsave( const char *filename, VOption *options = 0 ) const;
4675
4690void ppmsave_target( VTarget target, VOption *options = 0 ) const;
4691
4701VImage premultiply( VOption *options = 0 ) const;
4702
4709VImage profile( VImage *rows, VOption *options = 0 ) const;
4710
4717static VipsBlob *profile_load( const char *name, VOption *options = 0 );
4718
4725VImage project( VImage *rows, VOption *options = 0 ) const;
4726
4737VImage quadratic( VImage coeff, VOption *options = 0 ) const;
4738
4744VImage rad2float( VOption *options = 0 ) const;
4745
4760static VImage radload( const char *filename, VOption *options = 0 );
4761
4776static VImage radload_buffer( VipsBlob *buffer, VOption *options = 0 );
4777
4792static VImage radload_source( VSource source, VOption *options = 0 );
4793
4805void radsave( const char *filename, VOption *options = 0 ) const;
4806
4818VipsBlob *radsave_buffer( VOption *options = 0 ) const;
4819
4831void radsave_target( VTarget target, VOption *options = 0 ) const;
4832
4841VImage rank( int width, int height, int index, VOption *options = 0 ) const;
4842
4863static VImage rawload( const char *filename, int width, int height, int bands, VOption *options = 0 );
4864
4876void rawsave( const char *filename, VOption *options = 0 ) const;
4877
4889void rawsave_fd( int fd, VOption *options = 0 ) const;
4890
4897VImage recomb( VImage m, VOption *options = 0 ) const;
4898
4911VImage reduce( double hshrink, double vshrink, VOption *options = 0 ) const;
4912
4924VImage reduceh( double hshrink, VOption *options = 0 ) const;
4925
4937VImage reducev( double vshrink, VOption *options = 0 ) const;
4938
4947
4955VImage relational_const( VipsOperationRelational relational, std::vector<double> c, VOption *options = 0 ) const;
4956
4963VImage remainder( VImage right, VOption *options = 0 ) const;
4964
4971VImage remainder_const( std::vector<double> c, VOption *options = 0 ) const;
4972
4980VImage replicate( int across, int down, VOption *options = 0 ) const;
4981
4997VImage resize( double scale, VOption *options = 0 ) const;
4998
5005VImage rot( VipsAngle angle, VOption *options = 0 ) const;
5006
5016VImage rot45( VOption *options = 0 ) const;
5017
5033VImage rotate( double angle, VOption *options = 0 ) const;
5034
5041VImage round( VipsOperationRound round, VOption *options = 0 ) const;
5042
5048VImage sRGB2HSV( VOption *options = 0 ) const;
5049
5055VImage sRGB2scRGB( VOption *options = 0 ) const;
5056
5066VImage scRGB2BW( VOption *options = 0 ) const;
5067
5073VImage scRGB2XYZ( VOption *options = 0 ) const;
5074
5084VImage scRGB2sRGB( VOption *options = 0 ) const;
5085
5096VImage scale( VOption *options = 0 ) const;
5097
5109VImage sequential( VOption *options = 0 ) const;
5110
5126VImage sharpen( VOption *options = 0 ) const;
5127
5135VImage shrink( double hshrink, double vshrink, VOption *options = 0 ) const;
5136
5143VImage shrinkh( int hshrink, VOption *options = 0 ) const;
5144
5151VImage shrinkv( int vshrink, VOption *options = 0 ) const;
5152
5158VImage sign( VOption *options = 0 ) const;
5159
5176VImage similarity( VOption *options = 0 ) const;
5177
5191static VImage sines( int width, int height, VOption *options = 0 );
5192
5204VImage smartcrop( int width, int height, VOption *options = 0 ) const;
5205
5211VImage sobel( VOption *options = 0 ) const;
5212
5219VImage spcor( VImage ref, VOption *options = 0 ) const;
5220
5226VImage spectrum( VOption *options = 0 ) const;
5227
5233VImage stats( VOption *options = 0 ) const;
5234
5249VImage stdif( int width, int height, VOption *options = 0 ) const;
5250
5262VImage subsample( int xfac, int yfac, VOption *options = 0 ) const;
5263
5270VImage subtract( VImage right, VOption *options = 0 ) const;
5271
5278static VImage sum( std::vector<VImage> in, VOption *options = 0 );
5279
5297static VImage svgload( const char *filename, VOption *options = 0 );
5298
5316static VImage svgload_buffer( VipsBlob *buffer, VOption *options = 0 );
5317
5335static VImage svgload_source( VSource source, VOption *options = 0 );
5336
5343static VImage switch_image( std::vector<VImage> tests, VOption *options = 0 );
5344
5356static void system( const char *cmd_format, VOption *options = 0 );
5357
5376static VImage text( const char *text, VOption *options = 0 );
5377
5397static VImage thumbnail( const char *filename, int width, VOption *options = 0 );
5398
5419static VImage thumbnail_buffer( VipsBlob *buffer, int width, VOption *options = 0 );
5420
5439VImage thumbnail_image( int width, VOption *options = 0 ) const;
5440
5461static VImage thumbnail_source( VSource source, int width, VOption *options = 0 );
5462
5481static VImage tiffload( const char *filename, VOption *options = 0 );
5482
5501static VImage tiffload_buffer( VipsBlob *buffer, VOption *options = 0 );
5502
5521static VImage tiffload_source( VSource source, VOption *options = 0 );
5522
5557void tiffsave( const char *filename, VOption *options = 0 ) const;
5558
5593VipsBlob *tiffsave_buffer( VOption *options = 0 ) const;
5594
5609VImage tilecache( VOption *options = 0 ) const;
5610
5629static VImage tonelut( VOption *options = 0 );
5630
5640VImage transpose3d( VOption *options = 0 ) const;
5641
5652VImage unpremultiply( VOption *options = 0 ) const;
5653
5668static VImage vipsload( const char *filename, VOption *options = 0 );
5669
5684static VImage vipsload_source( VSource source, VOption *options = 0 );
5685
5697void vipssave( const char *filename, VOption *options = 0 ) const;
5698
5710void vipssave_target( VTarget target, VOption *options = 0 ) const;
5711
5730static VImage webpload( const char *filename, VOption *options = 0 );
5731
5750static VImage webpload_buffer( VipsBlob *buffer, VOption *options = 0 );
5751
5770static VImage webpload_source( VSource source, VOption *options = 0 );
5771
5794void webpsave( const char *filename, VOption *options = 0 ) const;
5795
5818VipsBlob *webpsave_buffer( VOption *options = 0 ) const;
5819
5842void webpsave_target( VTarget target, VOption *options = 0 ) const;
5843
5856static VImage worley( int width, int height, VOption *options = 0 );
5857
5868VImage wrap( VOption *options = 0 ) const;
5869
5883static VImage xyz( int width, int height, VOption *options = 0 );
5884
5896static VImage zone( int width, int height, VOption *options = 0 );
5897
5905VImage zoom( int xfac, int yfac, VOption *options = 0 ) const;
5906};
5907
5908VIPS_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
std::vector< double > get_array_double(const char *field) const
Definition VImage8.h:741
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
const char * filename() const
Definition VImage8.h:554
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
void * write_to_memory(size_t *size) const
Definition VImage8.h:1047
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
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
VipsImage * get_image() const
Definition VImage8.h:434
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
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
const void * get_blob(const char *field, size_t *length) const
Definition VImage8.h:795
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
const char * get_string(const char *field) const
Definition VImage8.h:778
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
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
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
std::vector< int > get_array_int(const char *field) const
Definition VImage8.h:707
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 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
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
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
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
const void * data() const
Definition VImage8.h:566
VImage msb(VOption *options=0) const
Definition vips-operators.cpp:2390
static VOption * option()
Definition VImage8.h:820
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