2016-01-09 16:08:17 +01:00
|
|
|
// bodies for vips operations
|
2016-02-12 21:04:46 +01:00
|
|
|
// Fri Feb 12 20:03:53 GMT 2016
|
2014-10-27 19:17:49 +01:00
|
|
|
// this file is generated automatically, do not edit!
|
|
|
|
|
|
|
|
void VImage::system( char * cmd_format , VOption *options )
|
|
|
|
{
|
|
|
|
call( "system" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "cmd-format", cmd_format ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::add( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "add" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::subtract( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "subtract" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::multiply( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "multiply" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::divide( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "divide" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::relational( VImage right , VipsOperationRelational relational , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "relational" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
|
|
|
set( "right", right ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "relational", relational ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::remainder( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "remainder" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::boolean( VImage right , VipsOperationBoolean boolean , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "boolean" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
|
|
|
set( "right", right ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "boolean", boolean ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::math2( VImage right , VipsOperationMath2 math2 , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "math2" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
|
|
|
set( "right", right ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "math2", math2 ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::complex2( VImage right , VipsOperationComplex2 cmplx , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "complex2" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
|
|
|
set( "right", right ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "cmplx", cmplx ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::complexform( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "complexform" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::sum( std::vector<VImage> in , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "sum" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", in ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
2014-10-27 14:41:44 +01:00
|
|
|
|
|
|
|
VImage VImage::invert( VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "invert" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::linear( std::vector<double> a , std::vector<double> b , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "linear" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "a", a ) ->
|
|
|
|
set( "b", b ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::math( VipsOperationMath math , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "math" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "math", math ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::abs( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "abs" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::sign( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "sign" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::round( VipsOperationRound round , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "round" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "round", round ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::relational_const( std::vector<double> c , VipsOperationRelational relational , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "relational_const" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "c", c ) ->
|
|
|
|
set( "relational", relational ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::remainder_const( std::vector<double> c , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "remainder_const" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "c", c ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::boolean_const( std::vector<double> c , VipsOperationBoolean boolean , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "boolean_const" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "c", c ) ->
|
|
|
|
set( "boolean", boolean ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::math2_const( std::vector<double> c , VipsOperationMath2 math2 , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "math2_const" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "c", c ) ->
|
|
|
|
set( "math2", math2 ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::complex( VipsOperationComplex cmplx , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "complex" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "cmplx", cmplx ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::complexget( VipsOperationComplexget get , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "complexget" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "get", get ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
double VImage::avg( VOption *options )
|
|
|
|
{
|
|
|
|
double out;
|
|
|
|
|
|
|
|
call( "avg" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
double VImage::min( VOption *options )
|
|
|
|
{
|
|
|
|
double out;
|
|
|
|
|
|
|
|
call( "min" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
double VImage::max( VOption *options )
|
|
|
|
{
|
|
|
|
double out;
|
|
|
|
|
|
|
|
call( "max" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
double VImage::deviate( VOption *options )
|
|
|
|
{
|
|
|
|
double out;
|
|
|
|
|
|
|
|
call( "deviate" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::stats( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "stats" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_find( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_find" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_find_ndim( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_find_ndim" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_find_indexed( VImage index , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_find_indexed" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "index", index ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hough_line( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hough_line" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hough_circle( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hough_circle" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-01-06 12:51:53 +01:00
|
|
|
VImage VImage::project( VImage * rows , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage columns;
|
|
|
|
|
|
|
|
call( "project" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "columns", &columns ) ->
|
2015-01-06 12:51:53 +01:00
|
|
|
set( "rows", rows ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( columns );
|
|
|
|
}
|
|
|
|
|
2015-01-06 12:51:53 +01:00
|
|
|
VImage VImage::profile( VImage * rows , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage columns;
|
|
|
|
|
|
|
|
call( "profile" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "columns", &columns ) ->
|
2015-01-06 12:51:53 +01:00
|
|
|
set( "rows", rows ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( columns );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::measure( int h , int v , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "measure" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "h", h ) ->
|
|
|
|
set( "v", v ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
std::vector<double> VImage::getpoint( int x , int y , VOption *options )
|
|
|
|
{
|
|
|
|
std::vector<double> out_array;
|
|
|
|
|
|
|
|
call( "getpoint" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out-array", &out_array ) ->
|
|
|
|
set( "x", x ) ->
|
|
|
|
set( "y", y ) );
|
|
|
|
|
|
|
|
return( out_array );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::copy( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "copy" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::tilecache( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "tilecache" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::linecache( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "linecache" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::sequential( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "sequential" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::cache( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "cache" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::embed( int x , int y , int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "embed" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "x", x ) ->
|
|
|
|
set( "y", y ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::flip( VipsDirection direction , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "flip" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "direction", direction ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::insert( VImage sub , int x , int y , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "insert" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "main", *this ) ->
|
|
|
|
set( "sub", sub ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "x", x ) ->
|
|
|
|
set( "y", y ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::join( VImage in2 , VipsDirection direction , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "join" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in1", *this ) ->
|
|
|
|
set( "in2", in2 ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "direction", direction ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-01-09 15:52:05 +01:00
|
|
|
VImage VImage::arrayjoin( std::vector<VImage> in , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "arrayjoin" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", in ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::extract_area( int left , int top , int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "extract_area" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "input", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "left", left ) ->
|
|
|
|
set( "top", top ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::extract_band( int band , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "extract_band" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "band", band ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::bandjoin( std::vector<VImage> in , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "bandjoin" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", in ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-11-07 21:54:00 +01:00
|
|
|
VImage VImage::bandjoin_const( std::vector<double> c , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "bandjoin_const" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "c", c ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::bandrank( std::vector<VImage> in , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "bandrank" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", in ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::bandmean( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "bandmean" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::bandbool( VipsOperationBoolean boolean , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "bandbool" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "boolean", boolean ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::replicate( int across , int down , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "replicate" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "across", across ) ->
|
|
|
|
set( "down", down ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::cast( VipsBandFormat format , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "cast" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "format", format ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::rot( VipsAngle angle , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "rot" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "angle", angle ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::rot45( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "rot45" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::autorot( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "autorot" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::ifthenelse( VImage in1 , VImage in2 , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "ifthenelse" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "cond", *this ) ->
|
|
|
|
set( "in1", in1 ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in2", in2 ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::recomb( VImage m , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "recomb" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "m", m ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
VImage VImage::bandfold( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "bandfold" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::bandunfold( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "bandunfold" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::flatten( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "flatten" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
VImage VImage::premultiply( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "premultiply" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::unpremultiply( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "unpremultiply" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::grid( int tile_height , int across , int down , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "grid" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "tile-height", tile_height ) ->
|
|
|
|
set( "across", across ) ->
|
|
|
|
set( "down", down ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::scale( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "scale" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::wrap( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "wrap" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::zoom( int xfac , int yfac , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "zoom" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "input", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "xfac", xfac ) ->
|
|
|
|
set( "yfac", yfac ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::subsample( int xfac , int yfac , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "subsample" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "input", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "xfac", xfac ) ->
|
|
|
|
set( "yfac", yfac ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::msb( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "msb" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
VImage VImage::byteswap( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "byteswap" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::falsecolour( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "falsecolour" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::gamma( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "gamma" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::black( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "black" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::gaussnoise( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "gaussnoise" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::text( char * text , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "text" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "text", text ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::xyz( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "xyz" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::gaussmat( double sigma , double min_ampl , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "gaussmat" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "sigma", sigma ) ->
|
|
|
|
set( "min-ampl", min_ampl ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::logmat( double sigma , double min_ampl , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "logmat" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "sigma", sigma ) ->
|
|
|
|
set( "min-ampl", min_ampl ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::eye( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "eye" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::grey( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "grey" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::zone( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "zone" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::sines( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "sines" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_ideal( int width , int height , double frequency_cutoff , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_ideal" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "frequency-cutoff", frequency_cutoff ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_ideal_ring( int width , int height , double frequency_cutoff , double ringwidth , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_ideal_ring" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "frequency-cutoff", frequency_cutoff ) ->
|
|
|
|
set( "ringwidth", ringwidth ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_ideal_band( int width , int height , double frequency_cutoff_x , double frequency_cutoff_y , double radius , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_ideal_band" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "frequency-cutoff-x", frequency_cutoff_x ) ->
|
|
|
|
set( "frequency-cutoff-y", frequency_cutoff_y ) ->
|
|
|
|
set( "radius", radius ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_butterworth( int width , int height , double order , double frequency_cutoff , double amplitude_cutoff , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_butterworth" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "order", order ) ->
|
|
|
|
set( "frequency-cutoff", frequency_cutoff ) ->
|
|
|
|
set( "amplitude-cutoff", amplitude_cutoff ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_butterworth_ring( int width , int height , double order , double frequency_cutoff , double amplitude_cutoff , double ringwidth , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_butterworth_ring" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "order", order ) ->
|
|
|
|
set( "frequency-cutoff", frequency_cutoff ) ->
|
|
|
|
set( "amplitude-cutoff", amplitude_cutoff ) ->
|
|
|
|
set( "ringwidth", ringwidth ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage 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 )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_butterworth_band" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "order", order ) ->
|
|
|
|
set( "frequency-cutoff-x", frequency_cutoff_x ) ->
|
|
|
|
set( "frequency-cutoff-y", frequency_cutoff_y ) ->
|
|
|
|
set( "radius", radius ) ->
|
|
|
|
set( "amplitude-cutoff", amplitude_cutoff ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_gaussian( int width , int height , double frequency_cutoff , double amplitude_cutoff , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_gaussian" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "frequency-cutoff", frequency_cutoff ) ->
|
|
|
|
set( "amplitude-cutoff", amplitude_cutoff ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_gaussian_ring( int width , int height , double frequency_cutoff , double amplitude_cutoff , double ringwidth , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_gaussian_ring" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "frequency-cutoff", frequency_cutoff ) ->
|
|
|
|
set( "amplitude-cutoff", amplitude_cutoff ) ->
|
|
|
|
set( "ringwidth", ringwidth ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_gaussian_band( int width , int height , double frequency_cutoff_x , double frequency_cutoff_y , double radius , double amplitude_cutoff , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_gaussian_band" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "frequency-cutoff-x", frequency_cutoff_x ) ->
|
|
|
|
set( "frequency-cutoff-y", frequency_cutoff_y ) ->
|
|
|
|
set( "radius", radius ) ->
|
|
|
|
set( "amplitude-cutoff", amplitude_cutoff ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mask_fractal( int width , int height , double fractal_dimension , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mask_fractal" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "fractal-dimension", fractal_dimension ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::buildlut( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "buildlut" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::invertlut( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "invertlut" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::tonelut( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "tonelut" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::identity( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "identity" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::fractsurf( int width , int height , double fractal_dimension , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "fractsurf" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "fractal-dimension", fractal_dimension ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::radload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "radload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::ppmload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "ppmload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::csvload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "csvload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::matrixload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "matrixload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::analyzeload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "analyzeload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::rawload( char * filename , int width , int height , int bands , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "rawload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "bands", bands ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::vipsload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "vipsload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-02-08 21:26:22 +01:00
|
|
|
VImage VImage::pdfload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "pdfload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::pdfload_buffer( VipsBlob * buffer , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "pdfload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-02-09 12:01:12 +01:00
|
|
|
VImage VImage::svgload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "svgload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::svgload_buffer( VipsBlob * buffer , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "svgload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-02-12 21:04:46 +01:00
|
|
|
VImage VImage::gifload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "gifload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::gifload_buffer( VipsBlob * buffer , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "gifload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::pngload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "pngload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-28 11:12:06 +01:00
|
|
|
VImage VImage::pngload_buffer( VipsBlob * buffer , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "pngload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-01-09 16:08:17 +01:00
|
|
|
VImage VImage::matload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "matload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::jpegload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "jpegload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-28 11:12:06 +01:00
|
|
|
VImage VImage::jpegload_buffer( VipsBlob * buffer , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "jpegload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-01-09 16:08:17 +01:00
|
|
|
VImage VImage::webpload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "webpload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::webpload_buffer( VipsBlob * buffer , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "webpload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::tiffload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "tiffload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-28 11:12:06 +01:00
|
|
|
VImage VImage::tiffload_buffer( VipsBlob * buffer , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "tiffload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-01-09 16:08:17 +01:00
|
|
|
VImage VImage::openslideload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "openslideload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::magickload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "magickload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::magickload_buffer( VipsBlob * buffer , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "magickload_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "buffer", buffer ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::fitsload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "fitsload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::openexrload( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "openexrload" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "filename", filename ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
void VImage::radsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "radsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
2016-05-23 16:37:28 +02:00
|
|
|
VipsBlob * VImage::radsave_buffer( VOption *options )
|
|
|
|
{
|
|
|
|
VipsBlob * buffer;
|
|
|
|
|
|
|
|
call( "radsave_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "buffer", &buffer ) );
|
|
|
|
|
|
|
|
return( buffer );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
void VImage::ppmsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "ppmsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::csvsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "csvsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::matrixsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "matrixsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::matrixprint( VOption *options )
|
|
|
|
{
|
|
|
|
call( "matrixprint" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::rawsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "rawsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::rawsave_fd( int fd , VOption *options )
|
|
|
|
{
|
|
|
|
call( "rawsave_fd" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "fd", fd ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::vipssave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "vipssave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::dzsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "dzsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::pngsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "pngsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
2014-10-28 11:12:06 +01:00
|
|
|
VipsBlob * VImage::pngsave_buffer( VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
2014-10-28 11:12:06 +01:00
|
|
|
VipsBlob * buffer;
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
call( "pngsave_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "buffer", &buffer ) );
|
|
|
|
|
|
|
|
return( buffer );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::jpegsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "jpegsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
2014-10-28 11:12:06 +01:00
|
|
|
VipsBlob * VImage::jpegsave_buffer( VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
2014-10-28 11:12:06 +01:00
|
|
|
VipsBlob * buffer;
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
call( "jpegsave_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "buffer", &buffer ) );
|
|
|
|
|
|
|
|
return( buffer );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::jpegsave_mime( VOption *options )
|
|
|
|
{
|
|
|
|
call( "jpegsave_mime" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) );
|
|
|
|
}
|
|
|
|
|
2016-01-09 16:08:17 +01:00
|
|
|
void VImage::webpsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "webpsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
VipsBlob * VImage::webpsave_buffer( VOption *options )
|
|
|
|
{
|
|
|
|
VipsBlob * buffer;
|
|
|
|
|
|
|
|
call( "webpsave_buffer" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "buffer", &buffer ) );
|
|
|
|
|
|
|
|
return( buffer );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
void VImage::tiffsave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "tiffsave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
2016-01-09 16:08:17 +01:00
|
|
|
void VImage::fitssave( char * filename , VOption *options )
|
|
|
|
{
|
|
|
|
call( "fitssave" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "filename", filename ) );
|
|
|
|
}
|
|
|
|
|
2016-01-09 15:52:05 +01:00
|
|
|
VImage VImage::mapim( VImage index , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
2016-01-09 15:52:05 +01:00
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mapim" ,
|
2014-10-27 19:17:49 +01:00
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2016-01-09 15:52:05 +01:00
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "index", index ) );
|
|
|
|
|
|
|
|
return( out );
|
2014-10-27 19:17:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::shrink( double xshrink , double yshrink , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "shrink" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "xshrink", xshrink ) ->
|
|
|
|
set( "yshrink", yshrink ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-11-07 21:54:00 +01:00
|
|
|
VImage VImage::shrinkh( int xshrink , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "shrinkh" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "xshrink", xshrink ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::shrinkv( int yshrink , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "shrinkv" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "yshrink", yshrink ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2016-02-07 18:41:39 +01:00
|
|
|
VImage VImage::reduceh( double xshrink , VOption *options )
|
2015-11-07 21:54:00 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
2016-02-07 18:41:39 +01:00
|
|
|
call( "reduceh" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "xshrink", xshrink ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::reducev( double yshrink , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "reducev" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "yshrink", yshrink ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::reduce( double xshrink , double yshrink , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "reduce" ,
|
2015-11-07 21:54:00 +01:00
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "xshrink", xshrink ) ->
|
|
|
|
set( "yshrink", yshrink ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::quadratic( VImage coeff , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "quadratic" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "coeff", coeff ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::affine( std::vector<double> matrix , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "affine" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "matrix", matrix ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::similarity( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "similarity" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-12-18 18:20:59 +01:00
|
|
|
VImage VImage::resize( double scale , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "resize" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
2014-12-18 18:20:59 +01:00
|
|
|
set( "scale", scale ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::colourspace( VipsInterpretation space , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "colourspace" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "space", space ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::Lab2XYZ( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "Lab2XYZ" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::XYZ2Lab( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "XYZ2Lab" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::Lab2LCh( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "Lab2LCh" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::LCh2Lab( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "LCh2Lab" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::LCh2CMC( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "LCh2CMC" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::CMC2LCh( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "CMC2LCh" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::XYZ2Yxy( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "XYZ2Yxy" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::Yxy2XYZ( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "Yxy2XYZ" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::scRGB2XYZ( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "scRGB2XYZ" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::XYZ2scRGB( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "XYZ2scRGB" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::LabQ2Lab( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "LabQ2Lab" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::Lab2LabQ( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "Lab2LabQ" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::LabQ2LabS( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "LabQ2LabS" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::LabS2LabQ( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "LabS2LabQ" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::LabS2Lab( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "LabS2Lab" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::Lab2LabS( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "Lab2LabS" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::rad2float( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "rad2float" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::float2rad( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "float2rad" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::LabQ2sRGB( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "LabQ2sRGB" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
VImage VImage::sRGB2HSV( VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
call( "sRGB2HSV" ,
|
2014-10-27 19:17:49 +01:00
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
VImage VImage::HSV2sRGB( VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
call( "HSV2sRGB" ,
|
2014-10-27 19:17:49 +01:00
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::icc_import( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "icc_import" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::icc_export( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "icc_export" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::icc_transform( char * output_profile , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "icc_transform" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "out", &out ) ->
|
2014-10-27 19:17:49 +01:00
|
|
|
set( "output-profile", output_profile ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::dE76( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "dE76" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::dE00( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "dE00" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::dECMC( VImage right , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "dECMC" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "left", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "right", right ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
VImage VImage::sRGB2scRGB( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "sRGB2scRGB" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::scRGB2BW( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "scRGB2BW" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::scRGB2sRGB( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "scRGB2sRGB" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::maplut( VImage lut , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "maplut" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "lut", lut ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
int VImage::percent( double percent , VOption *options )
|
|
|
|
{
|
|
|
|
int threshold;
|
|
|
|
|
|
|
|
call( "percent" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "percent", percent ) ->
|
|
|
|
set( "threshold", &threshold ) );
|
|
|
|
|
|
|
|
return( threshold );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::stdif( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "stdif" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_cum( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_cum" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_match( VImage ref , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_match" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "ref", ref ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_norm( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_norm" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_equal( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_equal" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_plot( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_plot" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::hist_local( int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "hist_local" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
bool VImage::hist_ismonotonic( VOption *options )
|
|
|
|
{
|
|
|
|
bool monotonic;
|
|
|
|
|
|
|
|
call( "hist_ismonotonic" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "monotonic", &monotonic ) );
|
|
|
|
|
|
|
|
return( monotonic );
|
|
|
|
}
|
|
|
|
|
2015-10-06 23:45:37 +02:00
|
|
|
double VImage::hist_entropy( VOption *options )
|
|
|
|
{
|
|
|
|
double out;
|
|
|
|
|
|
|
|
call( "hist_entropy" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage VImage::conv( VImage mask , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "conv" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "mask", mask ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::compass( VImage mask , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "compass" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "mask", mask ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::convsep( VImage mask , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "convsep" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "mask", mask ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::fastcor( VImage ref , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "fastcor" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "ref", ref ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::spcor( VImage ref , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "spcor" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "ref", ref ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::sharpen( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "sharpen" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
2014-12-18 18:20:59 +01:00
|
|
|
VImage VImage::gaussblur( double sigma , VOption *options )
|
2014-10-27 19:17:49 +01:00
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "gaussblur" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
2014-12-18 18:20:59 +01:00
|
|
|
set( "sigma", sigma ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::fwfft( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "fwfft" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::invfft( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "invfft" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::freqmult( VImage mask , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "freqmult" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "mask", mask ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::spectrum( VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "spectrum" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::phasecor( VImage in2 , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "phasecor" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
2014-11-16 13:19:04 +01:00
|
|
|
set( "in2", in2 ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-27 19:17:49 +01:00
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::morph( VImage mask , VipsOperationMorphology morph , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "morph" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "mask", mask ) ->
|
|
|
|
set( "morph", morph ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::rank( int width , int height , int index , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "rank" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) ->
|
|
|
|
set( "index", index ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
double VImage::countlines( VipsDirection direction , VOption *options )
|
|
|
|
{
|
|
|
|
double nolines;
|
|
|
|
|
|
|
|
call( "countlines" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "nolines", &nolines ) ->
|
|
|
|
set( "direction", direction ) );
|
|
|
|
|
|
|
|
return( nolines );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::labelregions( VOption *options )
|
|
|
|
{
|
|
|
|
VImage mask;
|
|
|
|
|
|
|
|
call( "labelregions" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "mask", &mask ) );
|
|
|
|
|
|
|
|
return( mask );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::draw_rect( std::vector<double> ink , int left , int top , int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
call( "draw_rect" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "image", *this ) ->
|
|
|
|
set( "ink", ink ) ->
|
|
|
|
set( "left", left ) ->
|
|
|
|
set( "top", top ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::draw_mask( std::vector<double> ink , VImage mask , int x , int y , VOption *options )
|
|
|
|
{
|
|
|
|
call( "draw_mask" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "image", *this ) ->
|
|
|
|
set( "ink", ink ) ->
|
|
|
|
set( "mask", mask ) ->
|
|
|
|
set( "x", x ) ->
|
|
|
|
set( "y", y ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::draw_line( std::vector<double> ink , int x1 , int y1 , int x2 , int y2 , VOption *options )
|
|
|
|
{
|
|
|
|
call( "draw_line" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "image", *this ) ->
|
|
|
|
set( "ink", ink ) ->
|
|
|
|
set( "x1", x1 ) ->
|
|
|
|
set( "y1", y1 ) ->
|
|
|
|
set( "x2", x2 ) ->
|
|
|
|
set( "y2", y2 ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::draw_circle( std::vector<double> ink , int cx , int cy , int radius , VOption *options )
|
|
|
|
{
|
|
|
|
call( "draw_circle" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "image", *this ) ->
|
|
|
|
set( "ink", ink ) ->
|
|
|
|
set( "cx", cx ) ->
|
|
|
|
set( "cy", cy ) ->
|
|
|
|
set( "radius", radius ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::draw_flood( std::vector<double> ink , int x , int y , VOption *options )
|
|
|
|
{
|
|
|
|
call( "draw_flood" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "image", *this ) ->
|
|
|
|
set( "ink", ink ) ->
|
|
|
|
set( "x", x ) ->
|
|
|
|
set( "y", y ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::draw_image( VImage sub , int x , int y , VOption *options )
|
|
|
|
{
|
|
|
|
call( "draw_image" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "image", *this ) ->
|
|
|
|
set( "sub", sub ) ->
|
|
|
|
set( "x", x ) ->
|
|
|
|
set( "y", y ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
void VImage::draw_smudge( int left , int top , int width , int height , VOption *options )
|
|
|
|
{
|
|
|
|
call( "draw_smudge" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "image", *this ) ->
|
|
|
|
set( "left", left ) ->
|
|
|
|
set( "top", top ) ->
|
|
|
|
set( "width", width ) ->
|
|
|
|
set( "height", height ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::merge( VImage sec , VipsDirection direction , int dx , int dy , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "merge" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "ref", *this ) ->
|
|
|
|
set( "sec", sec ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "direction", direction ) ->
|
|
|
|
set( "dx", dx ) ->
|
|
|
|
set( "dy", dy ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mosaic( VImage sec , VipsDirection direction , int xref , int yref , int xsec , int ysec , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mosaic" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "ref", *this ) ->
|
|
|
|
set( "sec", sec ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "direction", direction ) ->
|
|
|
|
set( "xref", xref ) ->
|
|
|
|
set( "yref", yref ) ->
|
|
|
|
set( "xsec", xsec ) ->
|
|
|
|
set( "ysec", ysec ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::mosaic1( VImage sec , VipsDirection direction , int xr1 , int yr1 , int xs1 , int ys1 , int xr2 , int yr2 , int xs2 , int ys2 , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "mosaic1" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "ref", *this ) ->
|
|
|
|
set( "sec", sec ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "direction", direction ) ->
|
|
|
|
set( "xr1", xr1 ) ->
|
|
|
|
set( "yr1", yr1 ) ->
|
|
|
|
set( "xs1", xs1 ) ->
|
|
|
|
set( "ys1", ys1 ) ->
|
|
|
|
set( "xr2", xr2 ) ->
|
|
|
|
set( "yr2", yr2 ) ->
|
|
|
|
set( "xs2", xs2 ) ->
|
|
|
|
set( "ys2", ys2 ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::match( VImage sec , int xr1 , int yr1 , int xs1 , int ys1 , int xr2 , int yr2 , int xs2 , int ys2 , VOption *options )
|
|
|
|
{
|
|
|
|
VImage out;
|
|
|
|
|
|
|
|
call( "match" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "ref", *this ) ->
|
|
|
|
set( "sec", sec ) ->
|
|
|
|
set( "out", &out ) ->
|
|
|
|
set( "xr1", xr1 ) ->
|
|
|
|
set( "yr1", yr1 ) ->
|
|
|
|
set( "xs1", xs1 ) ->
|
|
|
|
set( "ys1", ys1 ) ->
|
|
|
|
set( "xr2", xr2 ) ->
|
|
|
|
set( "yr2", yr2 ) ->
|
|
|
|
set( "xs2", xs2 ) ->
|
|
|
|
set( "ys2", ys2 ) );
|
|
|
|
|
|
|
|
return( out );
|
|
|
|
}
|
|
|
|
|
|
|
|
VImage VImage::globalbalance( VOption *options )
|
2014-10-20 12:50:34 +02:00
|
|
|
{
|
2014-10-27 19:17:49 +01:00
|
|
|
VImage out;
|
2014-10-20 12:50:34 +02:00
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
call( "globalbalance" ,
|
|
|
|
(options ? options : VImage::option()) ->
|
|
|
|
set( "in", *this ) ->
|
|
|
|
set( "out", &out ) );
|
2014-10-20 12:50:34 +02:00
|
|
|
|
2014-10-27 19:17:49 +01:00
|
|
|
return( out );
|
2014-10-20 12:50:34 +02:00
|
|
|
}
|
2014-10-27 14:41:44 +01:00
|
|
|
|