sharp 0.25.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@
5
5
  * 10/6/16
6
6
  * - missing implementation of VImage::write()
7
7
  * 11/6/16
8
- * - added arithmetic assignment overloads, += etc.
8
+ * - added arithmetic assignment overloads, += etc.
9
9
  */
10
10
 
11
11
  /*
@@ -51,7 +51,7 @@
51
51
 
52
52
  VIPS_NAMESPACE_START
53
53
 
54
- std::vector<double>
54
+ std::vector<double>
55
55
  to_vectorv( int n, ... )
56
56
  {
57
57
  std::vector<double> vector( n );
@@ -65,13 +65,13 @@ to_vectorv( int n, ... )
65
65
  return( vector );
66
66
  }
67
67
 
68
- std::vector<double>
68
+ std::vector<double>
69
69
  to_vector( double value )
70
70
  {
71
71
  return( to_vectorv( 1, value ) );
72
72
  }
73
73
 
74
- std::vector<double>
74
+ std::vector<double>
75
75
  to_vector( int n, double array[] )
76
76
  {
77
77
  std::vector<double> vector( n );
@@ -82,10 +82,10 @@ to_vector( int n, double array[] )
82
82
  return( vector );
83
83
  }
84
84
 
85
- std::vector<double>
85
+ std::vector<double>
86
86
  negate( std::vector<double> vector )
87
87
  {
88
- std::vector<double> new_vector( vector.size() );
88
+ std::vector<double> new_vector( vector.size() );
89
89
 
90
90
  for( unsigned int i = 0; i < vector.size(); i++ )
91
91
  new_vector[i] = vector[i] * -1;
@@ -93,7 +93,7 @@ negate( std::vector<double> vector )
93
93
  return( new_vector );
94
94
  }
95
95
 
96
- std::vector<double>
96
+ std::vector<double>
97
97
  invert( std::vector<double> vector )
98
98
  {
99
99
  std::vector<double> new_vector( vector.size() );
@@ -108,7 +108,7 @@ VOption::~VOption()
108
108
  {
109
109
  std::list<Pair *>::iterator i;
110
110
 
111
- for( i = options.begin(); i != options.end(); ++i )
111
+ for( i = options.begin(); i != options.end(); ++i )
112
112
  delete *i;
113
113
  }
114
114
 
@@ -140,7 +140,7 @@ VOption::set( const char *name, int value )
140
140
  return( this );
141
141
  }
142
142
 
143
- // input double
143
+ // input double
144
144
  VOption *
145
145
  VOption::set( const char *name, double value )
146
146
  {
@@ -188,17 +188,17 @@ VOption::set( const char *name, std::vector<double> value )
188
188
  Pair *pair = new Pair( name );
189
189
 
190
190
  double *array;
191
- unsigned int i;
191
+ unsigned int i;
192
192
 
193
193
  pair->input = true;
194
194
 
195
195
  g_value_init( &pair->value, VIPS_TYPE_ARRAY_DOUBLE );
196
196
  vips_value_set_array_double( &pair->value, NULL,
197
197
  static_cast< int >( value.size() ) );
198
- array = vips_value_get_array_double( &pair->value, NULL );
198
+ array = vips_value_get_array_double( &pair->value, NULL );
199
199
 
200
- for( i = 0; i < value.size(); i++ )
201
- array[i] = value[i];
200
+ for( i = 0; i < value.size(); i++ )
201
+ array[i] = value[i];
202
202
 
203
203
  options.push_back( pair );
204
204
 
@@ -212,17 +212,17 @@ VOption::set( const char *name, std::vector<int> value )
212
212
  Pair *pair = new Pair( name );
213
213
 
214
214
  int *array;
215
- unsigned int i;
215
+ unsigned int i;
216
216
 
217
217
  pair->input = true;
218
218
 
219
219
  g_value_init( &pair->value, VIPS_TYPE_ARRAY_INT );
220
220
  vips_value_set_array_int( &pair->value, NULL,
221
221
  static_cast< int >( value.size() ) );
222
- array = vips_value_get_array_int( &pair->value, NULL );
222
+ array = vips_value_get_array_int( &pair->value, NULL );
223
223
 
224
- for( i = 0; i < value.size(); i++ )
225
- array[i] = value[i];
224
+ for( i = 0; i < value.size(); i++ )
225
+ array[i] = value[i];
226
226
 
227
227
  options.push_back( pair );
228
228
 
@@ -236,7 +236,7 @@ VOption::set( const char *name, std::vector<VImage> value )
236
236
  Pair *pair = new Pair( name );
237
237
 
238
238
  VipsImage **array;
239
- unsigned int i;
239
+ unsigned int i;
240
240
 
241
241
  pair->input = true;
242
242
 
@@ -245,11 +245,11 @@ VOption::set( const char *name, std::vector<VImage> value )
245
245
  static_cast< int >( value.size() ) );
246
246
  array = vips_value_get_array_image( &pair->value, NULL );
247
247
 
248
- for( i = 0; i < value.size(); i++ ) {
248
+ for( i = 0; i < value.size(); i++ ) {
249
249
  VipsImage *vips_image = value[i].get_image();
250
250
 
251
- array[i] = vips_image;
252
- g_object_ref( vips_image );
251
+ array[i] = vips_image;
252
+ g_object_ref( vips_image );
253
253
  }
254
254
 
255
255
  options.push_back( pair );
@@ -279,7 +279,7 @@ VOption::set( const char *name, bool *value )
279
279
 
280
280
  pair->input = false;
281
281
  pair->vbool = value;
282
- g_value_init( &pair->value, G_TYPE_BOOLEAN );
282
+ g_value_init( &pair->value, G_TYPE_BOOLEAN );
283
283
 
284
284
  options.push_back( pair );
285
285
 
@@ -294,7 +294,7 @@ VOption::set( const char *name, int *value )
294
294
 
295
295
  pair->input = false;
296
296
  pair->vint = value;
297
- g_value_init( &pair->value, G_TYPE_INT );
297
+ g_value_init( &pair->value, G_TYPE_INT );
298
298
 
299
299
  options.push_back( pair );
300
300
 
@@ -309,7 +309,7 @@ VOption::set( const char *name, double *value )
309
309
 
310
310
  pair->input = false;
311
311
  pair->vdouble = value;
312
- g_value_init( &pair->value, G_TYPE_DOUBLE );
312
+ g_value_init( &pair->value, G_TYPE_DOUBLE );
313
313
 
314
314
  options.push_back( pair );
315
315
 
@@ -339,7 +339,7 @@ VOption::set( const char *name, std::vector<double> *value )
339
339
 
340
340
  pair->input = false;
341
341
  pair->vvector = value;
342
- g_value_init( &pair->value, VIPS_TYPE_ARRAY_DOUBLE );
342
+ g_value_init( &pair->value, VIPS_TYPE_ARRAY_DOUBLE );
343
343
 
344
344
  options.push_back( pair );
345
345
 
@@ -354,7 +354,7 @@ VOption::set( const char *name, VipsBlob **value )
354
354
 
355
355
  pair->input = false;
356
356
  pair->vblob = value;
357
- g_value_init( &pair->value, VIPS_TYPE_BLOB );
357
+ g_value_init( &pair->value, VIPS_TYPE_BLOB );
358
358
 
359
359
  options.push_back( pair );
360
360
 
@@ -362,7 +362,7 @@ VOption::set( const char *name, VipsBlob **value )
362
362
  }
363
363
 
364
364
  // just g_object_set_property(), except we allow set enum from string
365
- static void
365
+ static void
366
366
  set_property( VipsObject *object, const char *name, const GValue *value )
367
367
  {
368
368
  VipsObjectClass *object_class = VIPS_OBJECT_GET_CLASS( object );
@@ -372,7 +372,7 @@ set_property( VipsObject *object, const char *name, const GValue *value )
372
372
  VipsArgumentClass *argument_class;
373
373
  VipsArgumentInstance *argument_instance;
374
374
 
375
- if( vips_object_get_argument( object, name,
375
+ if( vips_object_get_argument( object, name,
376
376
  &pspec, &argument_class, &argument_instance ) ) {
377
377
  g_warning( "%s", vips_error_buffer() );
378
378
  vips_error_clear();
@@ -384,17 +384,17 @@ set_property( VipsObject *object, const char *name, const GValue *value )
384
384
  GType pspec_type = G_PARAM_SPEC_VALUE_TYPE( pspec );
385
385
 
386
386
  int enum_value;
387
- GValue value2 = { 0 };
387
+ GValue value2 = { 0 };
388
388
 
389
- if( (enum_value = vips_enum_from_nick( object_class->nickname,
389
+ if( (enum_value = vips_enum_from_nick( object_class->nickname,
390
390
  pspec_type, g_value_get_string( value ) )) < 0 ) {
391
391
  g_warning( "%s", vips_error_buffer() );
392
392
  vips_error_clear();
393
393
  return;
394
394
  }
395
395
 
396
- g_value_init( &value2, pspec_type );
397
- g_value_set_enum( &value2, enum_value );
396
+ g_value_init( &value2, pspec_type );
397
+ g_value_set_enum( &value2, enum_value );
398
398
  g_object_set_property( G_OBJECT( object ), name, &value2 );
399
399
  g_value_unset( &value2 );
400
400
  }
@@ -402,18 +402,19 @@ set_property( VipsObject *object, const char *name, const GValue *value )
402
402
  g_object_set_property( G_OBJECT( object ), name, value );
403
403
  }
404
404
 
405
- // walk the options and set props on the operation
406
- void
405
+ // walk the options and set props on the operation
406
+ void
407
407
  VOption::set_operation( VipsOperation *operation )
408
408
  {
409
409
  std::list<Pair *>::iterator i;
410
410
 
411
- for( i = options.begin(); i != options.end(); ++i )
411
+ for( i = options.begin(); i != options.end(); ++i )
412
412
  if( (*i)->input ) {
413
413
  #ifdef VIPS_DEBUG_VERBOSE
414
414
  printf( "set_operation: " );
415
415
  vips_object_print_name( VIPS_OBJECT( operation ) );
416
- char *str_value = g_strdup_value_contents( &(*i)->value );
416
+ char *str_value =
417
+ g_strdup_value_contents( &(*i)->value );
417
418
  printf( ".%s = %s\n", (*i)->name, str_value );
418
419
  g_free( str_value );
419
420
  #endif /*VIPS_DEBUG_VERBOSE*/
@@ -424,12 +425,12 @@ VOption::set_operation( VipsOperation *operation )
424
425
  }
425
426
 
426
427
  // walk the options and fetch any requested outputs
427
- void
428
+ void
428
429
  VOption::get_operation( VipsOperation *operation )
429
430
  {
430
431
  std::list<Pair *>::iterator i;
431
432
 
432
- for( i = options.begin(); i != options.end(); ++i )
433
+ for( i = options.begin(); i != options.end(); ++i )
433
434
  if( ! (*i)->input ) {
434
435
  const char *name = (*i)->name;
435
436
 
@@ -439,7 +440,7 @@ VOption::get_operation( VipsOperation *operation )
439
440
  #ifdef VIPS_DEBUG_VERBOSE
440
441
  printf( "get_operation: " );
441
442
  vips_object_print_name( VIPS_OBJECT( operation ) );
442
- char *str_value = g_strdup_value_contents(
443
+ char *str_value = g_strdup_value_contents(
443
444
  &(*i)->value );
444
445
  printf( ".%s = %s\n", name, str_value );
445
446
  g_free( str_value );
@@ -450,59 +451,59 @@ VOption::get_operation( VipsOperation *operation )
450
451
 
451
452
  if( type == VIPS_TYPE_IMAGE ) {
452
453
  // rebox object
453
- VipsImage *image = VIPS_IMAGE(
454
- g_value_get_object( value ) );
455
- *((*i)->vimage) = VImage( image );
454
+ VipsImage *image = VIPS_IMAGE(
455
+ g_value_get_object( value ) );
456
+ *((*i)->vimage) = VImage( image );
456
457
  }
457
- else if( type == G_TYPE_INT )
458
- *((*i)->vint) = g_value_get_int( value );
459
- else if( type == G_TYPE_BOOLEAN )
460
- *((*i)->vbool) = g_value_get_boolean( value );
461
- else if( type == G_TYPE_DOUBLE )
462
- *((*i)->vdouble) = g_value_get_double( value );
458
+ else if( type == G_TYPE_INT )
459
+ *((*i)->vint) = g_value_get_int( value );
460
+ else if( type == G_TYPE_BOOLEAN )
461
+ *((*i)->vbool) = g_value_get_boolean( value );
462
+ else if( type == G_TYPE_DOUBLE )
463
+ *((*i)->vdouble) = g_value_get_double( value );
463
464
  else if( type == VIPS_TYPE_ARRAY_DOUBLE ) {
464
465
  int length;
465
- double *array =
466
- vips_value_get_array_double( value,
466
+ double *array =
467
+ vips_value_get_array_double( value,
467
468
  &length );
468
469
  int j;
469
470
 
470
- ((*i)->vvector)->resize( length );
471
+ ((*i)->vvector)->resize( length );
471
472
  for( j = 0; j < length; j++ )
472
473
  (*((*i)->vvector))[j] = array[j];
473
474
  }
474
475
  else if( type == VIPS_TYPE_BLOB ) {
475
476
  // our caller gets a reference
476
- *((*i)->vblob) =
477
+ *((*i)->vblob) =
477
478
  (VipsBlob *) g_value_dup_boxed( value );
478
479
  }
479
480
  }
480
481
  }
481
482
 
482
- void
483
- VImage::call_option_string( const char *operation_name,
484
- const char *option_string, VOption *options )
483
+ void
484
+ VImage::call_option_string( const char *operation_name,
485
+ const char *option_string, VOption *options )
485
486
  {
486
487
  VipsOperation *operation;
487
488
 
488
- VIPS_DEBUG_MSG( "call_option_string: starting for %s ...\n",
489
+ VIPS_DEBUG_MSG( "call_option_string: starting for %s ...\n",
489
490
  operation_name );
490
491
 
491
492
  if( !(operation = vips_operation_new( operation_name )) ) {
492
493
  delete options;
493
- throw( VError() );
494
+ throw( VError() );
494
495
  }
495
496
 
496
- /* Set str options before vargs options, so the user can't
497
+ /* Set str options before vargs options, so the user can't
497
498
  * override things we set deliberately.
498
499
  */
499
500
  if( option_string &&
500
- vips_object_set_from_string( VIPS_OBJECT( operation ),
501
+ vips_object_set_from_string( VIPS_OBJECT( operation ),
501
502
  option_string ) ) {
502
503
  vips_object_unref_outputs( VIPS_OBJECT( operation ) );
503
- g_object_unref( operation );
504
- delete options;
505
- throw( VError() );
504
+ g_object_unref( operation );
505
+ delete options;
506
+ throw( VError() );
506
507
  }
507
508
 
508
509
  if( options )
@@ -512,9 +513,9 @@ VImage::call_option_string( const char *operation_name,
512
513
  */
513
514
  if( vips_cache_operation_buildp( &operation ) ) {
514
515
  vips_object_unref_outputs( VIPS_OBJECT( operation ) );
515
- g_object_unref( operation );
516
- delete options;
517
- throw( VError() );
516
+ g_object_unref( operation );
517
+ delete options;
518
+ throw( VError() );
518
519
  }
519
520
 
520
521
  /* Walk args again, writing output.
@@ -524,46 +525,46 @@ VImage::call_option_string( const char *operation_name,
524
525
 
525
526
  /* We're done with options!
526
527
  */
527
- delete options;
528
+ delete options;
528
529
 
529
- /* The operation we have built should now have been reffed by
530
- * one of its arguments or have finished its work. Either
530
+ /* The operation we have built should now have been reffed by
531
+ * one of its arguments or have finished its work. Either
531
532
  * way, we can unref.
532
533
  */
533
534
  g_object_unref( operation );
534
535
  }
535
536
 
536
- void
537
- VImage::call( const char *operation_name, VOption *options )
537
+ void
538
+ VImage::call( const char *operation_name, VOption *options )
538
539
  {
539
- call_option_string( operation_name, NULL, options );
540
+ call_option_string( operation_name, NULL, options );
540
541
  }
541
542
 
542
- VImage
543
+ VImage
543
544
  VImage::new_from_file( const char *name, VOption *options )
544
545
  {
545
546
  char filename[VIPS_PATH_MAX];
546
547
  char option_string[VIPS_PATH_MAX];
547
548
  const char *operation_name;
548
549
 
549
- VImage out;
550
+ VImage out;
550
551
 
551
552
  vips__filename_split8( name, filename, option_string );
552
553
  if( !(operation_name = vips_foreign_find_load( filename )) ) {
553
- delete options;
554
- throw VError();
554
+ delete options;
555
+ throw VError();
555
556
  }
556
557
 
557
558
  call_option_string( operation_name, option_string,
558
- (options ? options : VImage::option())->
559
+ (options ? options : VImage::option())->
559
560
  set( "filename", filename )->
560
561
  set( "out", &out ) );
561
562
 
562
- return( out );
563
+ return( out );
563
564
  }
564
565
 
565
- VImage
566
- VImage::new_from_buffer( const void *buf, size_t len, const char *option_string,
566
+ VImage
567
+ VImage::new_from_buffer( const void *buf, size_t len, const char *option_string,
567
568
  VOption *options )
568
569
  {
569
570
  const char *operation_name;
@@ -571,87 +572,87 @@ VImage::new_from_buffer( const void *buf, size_t len, const char *option_string,
571
572
  VImage out;
572
573
 
573
574
  if( !(operation_name = vips_foreign_find_load_buffer( buf, len )) ) {
574
- delete options;
575
- throw( VError() );
575
+ delete options;
576
+ throw( VError() );
576
577
  }
577
578
 
578
579
  /* We don't take a copy of the data or free it.
579
580
  */
580
581
  blob = vips_blob_new( NULL, buf, len );
581
- options = (options ? options : VImage::option())->
582
+ options = (options ? options : VImage::option())->
582
583
  set( "buffer", blob )->
583
584
  set( "out", &out );
584
585
  vips_area_unref( VIPS_AREA( blob ) );
585
586
 
586
- call_option_string( operation_name, option_string, options );
587
+ call_option_string( operation_name, option_string, options );
587
588
 
588
589
  return( out );
589
590
  }
590
591
 
591
- VImage
592
- VImage::new_from_buffer( const std::string &buf, const char *option_string,
592
+ VImage
593
+ VImage::new_from_buffer( const std::string &buf, const char *option_string,
593
594
  VOption *options )
594
595
  {
595
- return( new_from_buffer( buf.c_str(), buf.size(),
596
+ return( new_from_buffer( buf.c_str(), buf.size(),
596
597
  option_string, options ) );
597
598
  }
598
599
 
599
- VImage
600
- VImage::new_from_source( VSource source, const char *option_string,
600
+ VImage
601
+ VImage::new_from_source( VSource source, const char *option_string,
601
602
  VOption *options )
602
603
  {
603
604
  const char *operation_name;
604
605
  VImage out;
605
606
 
606
- if( !(operation_name = vips_foreign_find_load_source(
607
+ if( !(operation_name = vips_foreign_find_load_source(
607
608
  source.get_source() )) ) {
608
- delete options;
609
- throw( VError() );
609
+ delete options;
610
+ throw( VError() );
610
611
  }
611
612
 
612
- options = (options ? options : VImage::option())->
613
+ options = (options ? options : VImage::option())->
613
614
  set( "source", source )->
614
615
  set( "out", &out );
615
616
 
616
- call_option_string( operation_name, option_string, options );
617
+ call_option_string( operation_name, option_string, options );
617
618
 
618
619
  return( out );
619
620
  }
620
621
 
621
- VImage
622
- VImage::new_matrix( int width, int height )
622
+ VImage
623
+ VImage::new_matrix( int width, int height )
623
624
  {
624
- return( VImage( vips_image_new_matrix( width, height ) ) );
625
+ return( VImage( vips_image_new_matrix( width, height ) ) );
625
626
  }
626
627
 
627
- VImage
628
+ VImage
628
629
  VImage::new_matrixv( int width, int height, ... )
629
630
  {
630
631
  VImage matrix = new_matrix( width, height );
631
- VipsImage *vips_matrix = matrix.get_image();
632
+ VipsImage *vips_matrix = matrix.get_image();
632
633
 
633
634
  va_list ap;
634
635
 
635
636
  va_start( ap, height );
636
637
  for( int y = 0; y < height; y++ )
637
638
  for( int x = 0; x < width; x++ )
638
- *VIPS_MATRIX( vips_matrix, x, y ) =
639
+ *VIPS_MATRIX( vips_matrix, x, y ) =
639
640
  va_arg( ap, double );
640
641
  va_end( ap );
641
642
 
642
- return( matrix );
643
+ return( matrix );
643
644
  }
644
645
 
645
646
  VImage
646
647
  VImage::write( VImage out ) const
647
648
  {
648
649
  if( vips_image_write( this->get_image(), out.get_image() ) )
649
- throw VError();
650
+ throw VError();
650
651
 
651
- return( out );
652
+ return( out );
652
653
  }
653
654
 
654
- void
655
+ void
655
656
  VImage::write_to_file( const char *name, VOption *options ) const
656
657
  {
657
658
  char filename[VIPS_PATH_MAX];
@@ -660,18 +661,18 @@ VImage::write_to_file( const char *name, VOption *options ) const
660
661
 
661
662
  vips__filename_split8( name, filename, option_string );
662
663
  if( !(operation_name = vips_foreign_find_save( filename )) ) {
663
- delete options;
664
- throw VError();
664
+ delete options;
665
+ throw VError();
665
666
  }
666
667
 
667
- call_option_string( operation_name, option_string,
668
- (options ? options : VImage::option())->
668
+ call_option_string( operation_name, option_string,
669
+ (options ? options : VImage::option())->
669
670
  set( "in", *this )->
670
671
  set( "filename", filename ) );
671
672
  }
672
673
 
673
- void
674
- VImage::write_to_buffer( const char *suffix, void **buf, size_t *size,
674
+ void
675
+ VImage::write_to_buffer( const char *suffix, void **buf, size_t *size,
675
676
  VOption *options ) const
676
677
  {
677
678
  char filename[VIPS_PATH_MAX];
@@ -681,16 +682,16 @@ VImage::write_to_buffer( const char *suffix, void **buf, size_t *size,
681
682
 
682
683
  vips__filename_split8( suffix, filename, option_string );
683
684
  if( !(operation_name = vips_foreign_find_save_buffer( filename )) ) {
684
- delete options;
685
- throw VError();
685
+ delete options;
686
+ throw VError();
686
687
  }
687
688
 
688
- call_option_string( operation_name, option_string,
689
- (options ? options : VImage::option())->
689
+ call_option_string( operation_name, option_string,
690
+ (options ? options : VImage::option())->
690
691
  set( "in", *this )->
691
692
  set( "buffer", &blob ) );
692
693
 
693
- if( blob ) {
694
+ if( blob ) {
694
695
  if( buf ) {
695
696
  *buf = VIPS_AREA( blob )->data;
696
697
  VIPS_AREA( blob )->free_fn = NULL;
@@ -702,8 +703,8 @@ VImage::write_to_buffer( const char *suffix, void **buf, size_t *size,
702
703
  }
703
704
  }
704
705
 
705
- void
706
- VImage::write_to_target( const char *suffix, VTarget target,
706
+ void
707
+ VImage::write_to_target( const char *suffix, VTarget target,
707
708
  VOption *options ) const
708
709
  {
709
710
  char filename[VIPS_PATH_MAX];
@@ -712,755 +713,755 @@ VImage::write_to_target( const char *suffix, VTarget target,
712
713
 
713
714
  vips__filename_split8( suffix, filename, option_string );
714
715
  if( !(operation_name = vips_foreign_find_save_target( filename )) ) {
715
- delete options;
716
- throw VError();
716
+ delete options;
717
+ throw VError();
717
718
  }
718
719
 
719
- call_option_string( operation_name, option_string,
720
- (options ? options : VImage::option())->
720
+ call_option_string( operation_name, option_string,
721
+ (options ? options : VImage::option())->
721
722
  set( "in", *this )->
722
723
  set( "target", target ) );
723
724
  }
724
725
 
725
726
  #include "vips-operators.cpp"
726
727
 
727
- std::vector<VImage>
728
+ std::vector<VImage>
728
729
  VImage::bandsplit( VOption *options ) const
729
730
  {
730
- std::vector<VImage> b;
731
+ std::vector<VImage> b;
731
732
 
732
733
  for( int i = 0; i < bands(); i++ )
733
- b.push_back( extract_band( i ) );
734
+ b.push_back( extract_band( i ) );
734
735
 
735
- return( b );
736
+ return( b );
736
737
  }
737
738
 
738
- VImage
739
+ VImage
739
740
  VImage::bandjoin( VImage other, VOption *options ) const
740
741
  {
741
- VImage v[2] = { *this, other };
742
+ VImage v[2] = { *this, other };
742
743
  std::vector<VImage> vec( v, v + VIPS_NUMBER( v ) );
743
744
 
744
- return( bandjoin( vec, options ) );
745
+ return( bandjoin( vec, options ) );
745
746
  }
746
747
 
747
- VImage
748
+ VImage
748
749
  VImage::composite( VImage other, VipsBlendMode mode, VOption *options ) const
749
750
  {
750
- VImage v[2] = { *this, other };
751
+ VImage v[2] = { *this, other };
751
752
  std::vector<VImage> ivec( v, v + VIPS_NUMBER( v ) );
752
- int m[1] = { static_cast<int>( mode ) };
753
+ int m[1] = { static_cast<int>( mode ) };
753
754
  std::vector<int> mvec( m, m + VIPS_NUMBER( m ) );
754
755
 
755
- return( composite( ivec, mvec, options ) );
756
+ return( composite( ivec, mvec, options ) );
756
757
  }
757
758
 
758
- std::complex<double>
759
+ std::complex<double>
759
760
  VImage::minpos( VOption *options ) const
760
761
  {
761
762
  double x, y;
762
763
 
763
- (void) min(
764
+ (void) min(
764
765
  (options ? options : VImage::option()) ->
765
766
  set( "x", &x ) ->
766
767
  set( "y", &y ) );
767
768
 
768
- return( std::complex<double>( x, y ) );
769
+ return( std::complex<double>( x, y ) );
769
770
  }
770
771
 
771
- std::complex<double>
772
+ std::complex<double>
772
773
  VImage::maxpos( VOption *options ) const
773
774
  {
774
775
  double x, y;
775
776
 
776
- (void) max(
777
+ (void) max(
777
778
  (options ? options : VImage::option()) ->
778
779
  set( "x", &x ) ->
779
780
  set( "y", &y ) );
780
781
 
781
- return( std::complex<double>( x, y ) );
782
+ return( std::complex<double>( x, y ) );
782
783
  }
783
784
 
784
785
  // Operator overloads
785
786
 
786
- VImage
787
+ VImage
787
788
  VImage::operator[]( int index ) const
788
789
  {
789
- return( this->extract_band( index ) );
790
+ return( this->extract_band( index ) );
790
791
  }
791
792
 
792
- std::vector<double>
793
+ std::vector<double>
793
794
  VImage::operator()( int x, int y ) const
794
795
  {
795
- return( this->getpoint( x, y ) );
796
+ return( this->getpoint( x, y ) );
796
797
  }
797
798
 
798
- VImage
799
+ VImage
799
800
  operator+( const VImage a, const VImage b )
800
801
  {
801
802
  return( a.add( b ) );
802
803
  }
803
804
 
804
- VImage
805
- operator+( double a, const VImage b )
805
+ VImage
806
+ operator+( double a, const VImage b )
806
807
  {
807
- return( b.linear( 1.0, a ) );
808
+ return( b.linear( 1.0, a ) );
808
809
  }
809
810
 
810
- VImage
811
- operator+( const VImage a, double b )
812
- {
813
- return( a.linear( 1.0, b ) );
811
+ VImage
812
+ operator+( const VImage a, double b )
813
+ {
814
+ return( a.linear( 1.0, b ) );
814
815
  }
815
816
 
816
- VImage
817
- operator+( const std::vector<double> a, const VImage b )
817
+ VImage
818
+ operator+( const std::vector<double> a, const VImage b )
818
819
  {
819
- return( b.linear( 1.0, a ) );
820
+ return( b.linear( 1.0, a ) );
820
821
  }
821
822
 
822
- VImage
823
- operator+( const VImage a, const std::vector<double> b )
824
- {
825
- return( a.linear( 1.0, b ) );
823
+ VImage
824
+ operator+( const VImage a, const std::vector<double> b )
825
+ {
826
+ return( a.linear( 1.0, b ) );
826
827
  }
827
828
 
828
- VImage &
829
+ VImage &
829
830
  operator+=( VImage &a, const VImage b )
830
831
  {
831
- return( a = a + b );
832
+ return( a = a + b );
832
833
  }
833
834
 
834
- VImage &
835
+ VImage &
835
836
  operator+=( VImage &a, const double b )
836
837
  {
837
- return( a = a + b );
838
+ return( a = a + b );
838
839
  }
839
840
 
840
- VImage &
841
+ VImage &
841
842
  operator+=( VImage &a, const std::vector<double> b )
842
843
  {
843
- return( a = a + b );
844
+ return( a = a + b );
844
845
  }
845
846
 
846
- VImage
847
- operator-( const VImage a, const VImage b )
847
+ VImage
848
+ operator-( const VImage a, const VImage b )
848
849
  {
849
850
  return( a.subtract( b ) );
850
851
  }
851
852
 
852
- VImage
853
- operator-( double a, const VImage b )
853
+ VImage
854
+ operator-( double a, const VImage b )
854
855
  {
855
- return( b.linear( -1.0, a ) );
856
+ return( b.linear( -1.0, a ) );
856
857
  }
857
858
 
858
- VImage
859
- operator-( const VImage a, double b )
860
- {
861
- return( a.linear( 1.0, -b ) );
859
+ VImage
860
+ operator-( const VImage a, double b )
861
+ {
862
+ return( a.linear( 1.0, -b ) );
862
863
  }
863
864
 
864
- VImage
865
- operator-( const std::vector<double> a, const VImage b )
865
+ VImage
866
+ operator-( const std::vector<double> a, const VImage b )
866
867
  {
867
- return( b.linear( -1.0, a ) );
868
+ return( b.linear( -1.0, a ) );
868
869
  }
869
870
 
870
- VImage
871
- operator-( const VImage a, const std::vector<double> b )
872
- {
873
- return( a.linear( 1.0, vips::negate( b ) ) );
871
+ VImage
872
+ operator-( const VImage a, const std::vector<double> b )
873
+ {
874
+ return( a.linear( 1.0, vips::negate( b ) ) );
874
875
  }
875
876
 
876
- VImage &
877
+ VImage &
877
878
  operator-=( VImage &a, const VImage b )
878
879
  {
879
- return( a = a - b );
880
+ return( a = a - b );
880
881
  }
881
882
 
882
- VImage &
883
+ VImage &
883
884
  operator-=( VImage &a, const double b )
884
885
  {
885
- return( a = a - b );
886
+ return( a = a - b );
886
887
  }
887
888
 
888
- VImage &
889
+ VImage &
889
890
  operator-=( VImage &a, const std::vector<double> b )
890
891
  {
891
- return( a = a - b );
892
+ return( a = a - b );
892
893
  }
893
894
 
894
- VImage
895
- operator-( const VImage a )
896
- {
895
+ VImage
896
+ operator-( const VImage a )
897
+ {
897
898
  return( a * -1 );
898
899
  }
899
900
 
900
- VImage
901
- operator*( const VImage a, const VImage b )
901
+ VImage
902
+ operator*( const VImage a, const VImage b )
902
903
  {
903
904
  return( a.multiply( b ) );
904
905
  }
905
906
 
906
- VImage
907
- operator*( double a, const VImage b )
907
+ VImage
908
+ operator*( double a, const VImage b )
908
909
  {
909
- return( b.linear( a, 0.0 ) );
910
+ return( b.linear( a, 0.0 ) );
910
911
  }
911
912
 
912
- VImage
913
- operator*( const VImage a, double b )
914
- {
915
- return( a.linear( b, 0.0 ) );
913
+ VImage
914
+ operator*( const VImage a, double b )
915
+ {
916
+ return( a.linear( b, 0.0 ) );
916
917
  }
917
918
 
918
- VImage
919
- operator*( const std::vector<double> a, const VImage b )
919
+ VImage
920
+ operator*( const std::vector<double> a, const VImage b )
920
921
  {
921
- return( b.linear( a, 0.0 ) );
922
+ return( b.linear( a, 0.0 ) );
922
923
  }
923
924
 
924
- VImage
925
- operator*( const VImage a, const std::vector<double> b )
926
- {
927
- return( a.linear( b, 0.0 ) );
925
+ VImage
926
+ operator*( const VImage a, const std::vector<double> b )
927
+ {
928
+ return( a.linear( b, 0.0 ) );
928
929
  }
929
930
 
930
- VImage &
931
+ VImage &
931
932
  operator*=( VImage &a, const VImage b )
932
933
  {
933
- return( a = a * b );
934
+ return( a = a * b );
934
935
  }
935
936
 
936
- VImage &
937
+ VImage &
937
938
  operator*=( VImage &a, const double b )
938
939
  {
939
- return( a = a * b );
940
+ return( a = a * b );
940
941
  }
941
942
 
942
- VImage &
943
+ VImage &
943
944
  operator*=( VImage &a, const std::vector<double> b )
944
945
  {
945
- return( a = a * b );
946
+ return( a = a * b );
946
947
  }
947
948
 
948
- VImage
949
- operator/( const VImage a, const VImage b )
949
+ VImage
950
+ operator/( const VImage a, const VImage b )
950
951
  {
951
952
  return( a.divide( b ) );
952
953
  }
953
954
 
954
- VImage
955
- operator/( double a, const VImage b )
955
+ VImage
956
+ operator/( double a, const VImage b )
956
957
  {
957
- return( b.pow( -1.0 ).linear( a, 0.0 ) );
958
+ return( b.pow( -1.0 ).linear( a, 0.0 ) );
958
959
  }
959
960
 
960
- VImage
961
- operator/( const VImage a, double b )
962
- {
963
- return( a.linear( 1.0 / b, 0.0 ) );
961
+ VImage
962
+ operator/( const VImage a, double b )
963
+ {
964
+ return( a.linear( 1.0 / b, 0.0 ) );
964
965
  }
965
966
 
966
- VImage
967
- operator/( const std::vector<double> a, const VImage b )
967
+ VImage
968
+ operator/( const std::vector<double> a, const VImage b )
968
969
  {
969
- return( b.pow( -1.0 ).linear( a, 0.0 ) );
970
+ return( b.pow( -1.0 ).linear( a, 0.0 ) );
970
971
  }
971
972
 
972
- VImage
973
- operator/( const VImage a, const std::vector<double> b )
974
- {
975
- return( a.linear( vips::invert( b ), 0.0 ) );
973
+ VImage
974
+ operator/( const VImage a, const std::vector<double> b )
975
+ {
976
+ return( a.linear( vips::invert( b ), 0.0 ) );
976
977
  }
977
978
 
978
- VImage &
979
+ VImage &
979
980
  operator/=( VImage &a, const VImage b )
980
981
  {
981
- return( a = a / b );
982
+ return( a = a / b );
982
983
  }
983
984
 
984
- VImage &
985
+ VImage &
985
986
  operator/=( VImage &a, const double b )
986
987
  {
987
- return( a = a / b );
988
+ return( a = a / b );
988
989
  }
989
990
 
990
- VImage &
991
+ VImage &
991
992
  operator/=( VImage &a, const std::vector<double> b )
992
993
  {
993
- return( a = a / b );
994
+ return( a = a / b );
994
995
  }
995
996
 
996
- VImage
997
- operator%( const VImage a, const VImage b )
997
+ VImage
998
+ operator%( const VImage a, const VImage b )
998
999
  {
999
1000
  return( a.remainder( b ) );
1000
1001
  }
1001
1002
 
1002
- VImage
1003
- operator%( const VImage a, const double b )
1004
- {
1005
- return( a.remainder_const( to_vector( b ) ) );
1003
+ VImage
1004
+ operator%( const VImage a, const double b )
1005
+ {
1006
+ return( a.remainder_const( to_vector( b ) ) );
1006
1007
  }
1007
1008
 
1008
- VImage
1009
- operator%( const VImage a, const std::vector<double> b )
1010
- {
1011
- return( a.remainder_const( b ) );
1009
+ VImage
1010
+ operator%( const VImage a, const std::vector<double> b )
1011
+ {
1012
+ return( a.remainder_const( b ) );
1012
1013
  }
1013
1014
 
1014
- VImage &
1015
+ VImage &
1015
1016
  operator%=( VImage &a, const VImage b )
1016
1017
  {
1017
- return( a = a % b );
1018
+ return( a = a % b );
1018
1019
  }
1019
1020
 
1020
- VImage &
1021
+ VImage &
1021
1022
  operator%=( VImage &a, const double b )
1022
1023
  {
1023
- return( a = a % b );
1024
+ return( a = a % b );
1024
1025
  }
1025
1026
 
1026
- VImage &
1027
+ VImage &
1027
1028
  operator%=( VImage &a, const std::vector<double> b )
1028
1029
  {
1029
- return( a = a % b );
1030
+ return( a = a % b );
1030
1031
  }
1031
1032
 
1032
- VImage
1033
- operator<( const VImage a, const VImage b )
1033
+ VImage
1034
+ operator<( const VImage a, const VImage b )
1034
1035
  {
1035
1036
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_LESS ) );
1036
1037
  }
1037
1038
 
1038
- VImage
1039
- operator<( const double a, const VImage b )
1039
+ VImage
1040
+ operator<( const double a, const VImage b )
1040
1041
  {
1041
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1042
- to_vector( a ) ) );
1042
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1043
+ to_vector( a ) ) );
1043
1044
  }
1044
1045
 
1045
- VImage
1046
- operator<( const VImage a, const double b )
1047
- {
1048
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1049
- to_vector( b ) ) );
1046
+ VImage
1047
+ operator<( const VImage a, const double b )
1048
+ {
1049
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1050
+ to_vector( b ) ) );
1050
1051
  }
1051
1052
 
1052
- VImage
1053
- operator<( const std::vector<double> a, const VImage b )
1053
+ VImage
1054
+ operator<( const std::vector<double> a, const VImage b )
1054
1055
  {
1055
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1056
- a ) );
1056
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1057
+ a ) );
1057
1058
  }
1058
1059
 
1059
- VImage
1060
- operator<( const VImage a, const std::vector<double> b )
1061
- {
1062
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1063
- b ) );
1060
+ VImage
1061
+ operator<( const VImage a, const std::vector<double> b )
1062
+ {
1063
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1064
+ b ) );
1064
1065
  }
1065
1066
 
1066
- VImage
1067
- operator<=( const VImage a, const VImage b )
1067
+ VImage
1068
+ operator<=( const VImage a, const VImage b )
1068
1069
  {
1069
1070
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_LESSEQ ) );
1070
1071
  }
1071
1072
 
1072
- VImage
1073
- operator<=( const double a, const VImage b )
1073
+ VImage
1074
+ operator<=( const double a, const VImage b )
1074
1075
  {
1075
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1076
- to_vector( a ) ) );
1076
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1077
+ to_vector( a ) ) );
1077
1078
  }
1078
1079
 
1079
- VImage
1080
- operator<=( const VImage a, const double b )
1081
- {
1082
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1083
- to_vector( b ) ) );
1080
+ VImage
1081
+ operator<=( const VImage a, const double b )
1082
+ {
1083
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1084
+ to_vector( b ) ) );
1084
1085
  }
1085
1086
 
1086
- VImage
1087
- operator<=( const std::vector<double> a, const VImage b )
1087
+ VImage
1088
+ operator<=( const std::vector<double> a, const VImage b )
1088
1089
  {
1089
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1090
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1090
1091
  a ) );
1091
1092
  }
1092
1093
 
1093
- VImage
1094
- operator<=( const VImage a, const std::vector<double> b )
1095
- {
1094
+ VImage
1095
+ operator<=( const VImage a, const std::vector<double> b )
1096
+ {
1096
1097
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1097
1098
  b ) );
1098
1099
  }
1099
1100
 
1100
- VImage
1101
- operator>( const VImage a, const VImage b )
1101
+ VImage
1102
+ operator>( const VImage a, const VImage b )
1102
1103
  {
1103
1104
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_MORE ) );
1104
1105
  }
1105
1106
 
1106
- VImage
1107
- operator>( const double a, const VImage b )
1107
+ VImage
1108
+ operator>( const double a, const VImage b )
1108
1109
  {
1109
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1110
- to_vector( a ) ) );
1110
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1111
+ to_vector( a ) ) );
1111
1112
  }
1112
1113
 
1113
- VImage
1114
- operator>( const VImage a, const double b )
1115
- {
1116
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1114
+ VImage
1115
+ operator>( const VImage a, const double b )
1116
+ {
1117
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1117
1118
  to_vector( b ) ) );
1118
1119
  }
1119
1120
 
1120
- VImage
1121
- operator>( const std::vector<double> a, const VImage b )
1121
+ VImage
1122
+ operator>( const std::vector<double> a, const VImage b )
1122
1123
  {
1123
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1124
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESS,
1124
1125
  a ) );
1125
1126
  }
1126
1127
 
1127
- VImage
1128
- operator>( const VImage a, const std::vector<double> b )
1129
- {
1130
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1128
+ VImage
1129
+ operator>( const VImage a, const std::vector<double> b )
1130
+ {
1131
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MORE,
1131
1132
  b ) );
1132
1133
  }
1133
1134
 
1134
- VImage
1135
- operator>=( const VImage a, const VImage b )
1135
+ VImage
1136
+ operator>=( const VImage a, const VImage b )
1136
1137
  {
1137
1138
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_MOREEQ ) );
1138
1139
  }
1139
1140
 
1140
- VImage
1141
- operator>=( const double a, const VImage b )
1141
+ VImage
1142
+ operator>=( const double a, const VImage b )
1142
1143
  {
1143
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1144
- to_vector( a ) ) );
1144
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1145
+ to_vector( a ) ) );
1145
1146
  }
1146
1147
 
1147
- VImage
1148
- operator>=( const VImage a, const double b )
1149
- {
1150
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1151
- to_vector( b ) ) );
1148
+ VImage
1149
+ operator>=( const VImage a, const double b )
1150
+ {
1151
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1152
+ to_vector( b ) ) );
1152
1153
  }
1153
1154
 
1154
- VImage
1155
- operator>=( const std::vector<double> a, const VImage b )
1155
+ VImage
1156
+ operator>=( const std::vector<double> a, const VImage b )
1156
1157
  {
1157
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1158
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_LESSEQ,
1158
1159
  a ) );
1159
1160
  }
1160
1161
 
1161
- VImage
1162
- operator>=( const VImage a, const std::vector<double> b )
1163
- {
1164
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1162
+ VImage
1163
+ operator>=( const VImage a, const std::vector<double> b )
1164
+ {
1165
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_MOREEQ,
1165
1166
  b ) );
1166
1167
  }
1167
1168
 
1168
- VImage
1169
- operator==( const VImage a, const VImage b )
1169
+ VImage
1170
+ operator==( const VImage a, const VImage b )
1170
1171
  {
1171
1172
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_EQUAL ) );
1172
1173
  }
1173
1174
 
1174
- VImage
1175
- operator==( const double a, const VImage b )
1175
+ VImage
1176
+ operator==( const double a, const VImage b )
1176
1177
  {
1177
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1178
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1178
1179
  to_vector( a ) ) );
1179
1180
  }
1180
1181
 
1181
- VImage
1182
- operator==( const VImage a, const double b )
1183
- {
1184
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1182
+ VImage
1183
+ operator==( const VImage a, const double b )
1184
+ {
1185
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1185
1186
  to_vector( b ) ) );
1186
1187
  }
1187
1188
 
1188
- VImage
1189
- operator==( const std::vector<double> a, const VImage b )
1189
+ VImage
1190
+ operator==( const std::vector<double> a, const VImage b )
1190
1191
  {
1191
- return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1192
+ return( b.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1192
1193
  a ) );
1193
1194
  }
1194
1195
 
1195
- VImage
1196
- operator==( const VImage a, const std::vector<double> b )
1197
- {
1198
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1196
+ VImage
1197
+ operator==( const VImage a, const std::vector<double> b )
1198
+ {
1199
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_EQUAL,
1199
1200
  b ) );
1200
1201
  }
1201
1202
 
1202
- VImage
1203
- operator!=( const VImage a, const VImage b )
1203
+ VImage
1204
+ operator!=( const VImage a, const VImage b )
1204
1205
  {
1205
1206
  return( a.relational( b, VIPS_OPERATION_RELATIONAL_NOTEQ ) );
1206
1207
  }
1207
1208
 
1208
- VImage
1209
- operator!=( const double a, const VImage b )
1209
+ VImage
1210
+ operator!=( const double a, const VImage b )
1210
1211
  {
1211
1212
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1212
- to_vector( a ) ) );
1213
+ to_vector( a ) ) );
1213
1214
  }
1214
1215
 
1215
- VImage
1216
- operator!=( const VImage a, const double b )
1217
- {
1218
- return( a.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1216
+ VImage
1217
+ operator!=( const VImage a, const double b )
1218
+ {
1219
+ return( a.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1219
1220
  to_vector( b ) ) );
1220
1221
  }
1221
1222
 
1222
- VImage
1223
- operator!=( const std::vector<double> a, const VImage b )
1223
+ VImage
1224
+ operator!=( const std::vector<double> a, const VImage b )
1224
1225
  {
1225
1226
  return( b.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1226
1227
  a ) );
1227
1228
  }
1228
1229
 
1229
- VImage
1230
- operator!=( const VImage a, const std::vector<double> b )
1231
- {
1230
+ VImage
1231
+ operator!=( const VImage a, const std::vector<double> b )
1232
+ {
1232
1233
  return( a.relational_const( VIPS_OPERATION_RELATIONAL_NOTEQ,
1233
1234
  b ) );
1234
1235
  }
1235
1236
 
1236
- VImage
1237
- operator&( const VImage a, const VImage b )
1237
+ VImage
1238
+ operator&( const VImage a, const VImage b )
1238
1239
  {
1239
1240
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_AND ) );
1240
1241
  }
1241
1242
 
1242
- VImage
1243
- operator&( const double a, const VImage b )
1243
+ VImage
1244
+ operator&( const double a, const VImage b )
1244
1245
  {
1245
- return( b.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1246
- to_vector( a ) ) );
1246
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1247
+ to_vector( a ) ) );
1247
1248
  }
1248
1249
 
1249
- VImage
1250
- operator&( const VImage a, const double b )
1251
- {
1252
- return( a.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1250
+ VImage
1251
+ operator&( const VImage a, const double b )
1252
+ {
1253
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_AND,
1253
1254
  to_vector( b ) ) );
1254
1255
  }
1255
1256
 
1256
- VImage
1257
- operator&( const std::vector<double> a, const VImage b )
1257
+ VImage
1258
+ operator&( const std::vector<double> a, const VImage b )
1258
1259
  {
1259
1260
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_AND, a ) );
1260
1261
  }
1261
1262
 
1262
- VImage
1263
- operator&( const VImage a, const std::vector<double> b )
1264
- {
1263
+ VImage
1264
+ operator&( const VImage a, const std::vector<double> b )
1265
+ {
1265
1266
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_AND, b ) );
1266
1267
  }
1267
1268
 
1268
- VImage &
1269
+ VImage &
1269
1270
  operator&=( VImage &a, const VImage b )
1270
1271
  {
1271
- return( a = a & b );
1272
+ return( a = a & b );
1272
1273
  }
1273
1274
 
1274
- VImage &
1275
+ VImage &
1275
1276
  operator&=( VImage &a, const double b )
1276
1277
  {
1277
- return( a = a & b );
1278
+ return( a = a & b );
1278
1279
  }
1279
1280
 
1280
- VImage &
1281
+ VImage &
1281
1282
  operator&=( VImage &a, const std::vector<double> b )
1282
1283
  {
1283
- return( a = a & b );
1284
+ return( a = a & b );
1284
1285
  }
1285
1286
 
1286
- VImage
1287
- operator|( const VImage a, const VImage b )
1287
+ VImage
1288
+ operator|( const VImage a, const VImage b )
1288
1289
  {
1289
1290
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_OR ) );
1290
1291
  }
1291
1292
 
1292
- VImage
1293
- operator|( const double a, const VImage b )
1293
+ VImage
1294
+ operator|( const double a, const VImage b )
1294
1295
  {
1295
- return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1296
- to_vector( a ) ) );
1296
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1297
+ to_vector( a ) ) );
1297
1298
  }
1298
1299
 
1299
- VImage
1300
- operator|( const VImage a, const double b )
1301
- {
1302
- return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1300
+ VImage
1301
+ operator|( const VImage a, const double b )
1302
+ {
1303
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1303
1304
  to_vector( b ) ) );
1304
1305
  }
1305
1306
 
1306
- VImage
1307
- operator|( const std::vector<double> a, const VImage b )
1307
+ VImage
1308
+ operator|( const std::vector<double> a, const VImage b )
1308
1309
  {
1309
- return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1310
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1310
1311
  a ) );
1311
1312
  }
1312
1313
 
1313
- VImage
1314
- operator|( const VImage a, const std::vector<double> b )
1315
- {
1316
- return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1314
+ VImage
1315
+ operator|( const VImage a, const std::vector<double> b )
1316
+ {
1317
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_OR,
1317
1318
  b ) );
1318
1319
  }
1319
1320
 
1320
- VImage &
1321
+ VImage &
1321
1322
  operator|=( VImage &a, const VImage b )
1322
1323
  {
1323
- return( a = a | b );
1324
+ return( a = a | b );
1324
1325
  }
1325
1326
 
1326
- VImage &
1327
+ VImage &
1327
1328
  operator|=( VImage &a, const double b )
1328
1329
  {
1329
- return( a = a | b );
1330
+ return( a = a | b );
1330
1331
  }
1331
1332
 
1332
- VImage &
1333
+ VImage &
1333
1334
  operator|=( VImage &a, const std::vector<double> b )
1334
1335
  {
1335
- return( a = a | b );
1336
+ return( a = a | b );
1336
1337
  }
1337
1338
 
1338
- VImage
1339
- operator^( const VImage a, const VImage b )
1339
+ VImage
1340
+ operator^( const VImage a, const VImage b )
1340
1341
  {
1341
1342
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_EOR ) );
1342
1343
  }
1343
1344
 
1344
- VImage
1345
- operator^( const double a, const VImage b )
1345
+ VImage
1346
+ operator^( const double a, const VImage b )
1346
1347
  {
1347
- return( b.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1348
- to_vector( a ) ) );
1348
+ return( b.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1349
+ to_vector( a ) ) );
1349
1350
  }
1350
1351
 
1351
- VImage
1352
- operator^( const VImage a, const double b )
1353
- {
1354
- return( a.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1355
- to_vector( b ) ) );
1352
+ VImage
1353
+ operator^( const VImage a, const double b )
1354
+ {
1355
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1356
+ to_vector( b ) ) );
1356
1357
  }
1357
1358
 
1358
- VImage
1359
- operator^( const std::vector<double> a, const VImage b )
1359
+ VImage
1360
+ operator^( const std::vector<double> a, const VImage b )
1360
1361
  {
1361
1362
  return( b.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1362
1363
  a ) );
1363
1364
  }
1364
1365
 
1365
- VImage
1366
- operator^( const VImage a, const std::vector<double> b )
1367
- {
1366
+ VImage
1367
+ operator^( const VImage a, const std::vector<double> b )
1368
+ {
1368
1369
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_EOR,
1369
1370
  b ) );
1370
1371
  }
1371
1372
 
1372
- VImage &
1373
+ VImage &
1373
1374
  operator^=( VImage &a, const VImage b )
1374
1375
  {
1375
- return( a = a ^ b );
1376
+ return( a = a ^ b );
1376
1377
  }
1377
1378
 
1378
- VImage &
1379
+ VImage &
1379
1380
  operator^=( VImage &a, const double b )
1380
1381
  {
1381
- return( a = a ^ b );
1382
+ return( a = a ^ b );
1382
1383
  }
1383
1384
 
1384
- VImage &
1385
+ VImage &
1385
1386
  operator^=( VImage &a, const std::vector<double> b )
1386
1387
  {
1387
- return( a = a ^ b );
1388
+ return( a = a ^ b );
1388
1389
  }
1389
1390
 
1390
- VImage
1391
- operator<<( const VImage a, const VImage b )
1391
+ VImage
1392
+ operator<<( const VImage a, const VImage b )
1392
1393
  {
1393
1394
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_LSHIFT ) );
1394
1395
  }
1395
1396
 
1396
- VImage
1397
- operator<<( const VImage a, const double b )
1398
- {
1399
- return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1400
- to_vector( b ) ) );
1397
+ VImage
1398
+ operator<<( const VImage a, const double b )
1399
+ {
1400
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1401
+ to_vector( b ) ) );
1401
1402
  }
1402
1403
 
1403
- VImage
1404
- operator<<( const VImage a, const std::vector<double> b )
1405
- {
1406
- return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1407
- b ) );
1404
+ VImage
1405
+ operator<<( const VImage a, const std::vector<double> b )
1406
+ {
1407
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_LSHIFT,
1408
+ b ) );
1408
1409
  }
1409
1410
 
1410
- VImage &
1411
+ VImage &
1411
1412
  operator<<=( VImage &a, const VImage b )
1412
1413
  {
1413
- return( a = a << b );
1414
+ return( a = a << b );
1414
1415
  }
1415
1416
 
1416
- VImage &
1417
+ VImage &
1417
1418
  operator<<=( VImage &a, const double b )
1418
1419
  {
1419
- return( a = a << b );
1420
+ return( a = a << b );
1420
1421
  }
1421
1422
 
1422
- VImage &
1423
+ VImage &
1423
1424
  operator<<=( VImage &a, const std::vector<double> b )
1424
1425
  {
1425
- return( a = a << b );
1426
+ return( a = a << b );
1426
1427
  }
1427
1428
 
1428
- VImage
1429
- operator>>( const VImage a, const VImage b )
1429
+ VImage
1430
+ operator>>( const VImage a, const VImage b )
1430
1431
  {
1431
1432
  return( a.boolean( b, VIPS_OPERATION_BOOLEAN_RSHIFT ) );
1432
1433
  }
1433
1434
 
1434
- VImage
1435
- operator>>( const VImage a, const double b )
1436
- {
1437
- return( a.boolean_const( VIPS_OPERATION_BOOLEAN_RSHIFT,
1438
- to_vector( b ) ) );
1435
+ VImage
1436
+ operator>>( const VImage a, const double b )
1437
+ {
1438
+ return( a.boolean_const( VIPS_OPERATION_BOOLEAN_RSHIFT,
1439
+ to_vector( b ) ) );
1439
1440
  }
1440
1441
 
1441
- VImage
1442
- operator>>( const VImage a, const std::vector<double> b )
1443
- {
1442
+ VImage
1443
+ operator>>( const VImage a, const std::vector<double> b )
1444
+ {
1444
1445
  return( a.boolean_const( VIPS_OPERATION_BOOLEAN_RSHIFT,
1445
- b ) );
1446
+ b ) );
1446
1447
  }
1447
1448
 
1448
- VImage &
1449
+ VImage &
1449
1450
  operator>>=( VImage &a, const VImage b )
1450
1451
  {
1451
- return( a = a << b );
1452
+ return( a = a << b );
1452
1453
  }
1453
1454
 
1454
- VImage &
1455
+ VImage &
1455
1456
  operator>>=( VImage &a, const double b )
1456
1457
  {
1457
- return( a = a << b );
1458
+ return( a = a << b );
1458
1459
  }
1459
1460
 
1460
- VImage &
1461
+ VImage &
1461
1462
  operator>>=( VImage &a, const std::vector<double> b )
1462
1463
  {
1463
- return( a = a << b );
1464
+ return( a = a << b );
1464
1465
  }
1465
1466
 
1466
1467
  VIPS_NAMESPACE_END