コード例 #1
0
ファイル: bandjoin.c プロジェクト: gargsms/libvips
static int
vips_bandjoin_build( VipsObject *object )
{
	VipsBandary *bandary = (VipsBandary *) object;
	VipsBandjoin *bandjoin = (VipsBandjoin *) object;

	if( bandjoin->in ) {
		bandary->in = vips_array_image_get( bandjoin->in, &bandary->n );

		if( bandary->n == 1 ) 
			return( vips_bandary_copy( bandary ) );
		else {
			int i;

			bandary->out_bands = 0;
			for( i = 0; i < bandary->n; i++ ) 
				if( bandary->in[i] ) 
					bandary->out_bands += 
						bandary->in[i]->Bands;
		}
	}

	if( VIPS_OBJECT_CLASS( vips_bandjoin_parent_class )->build( object ) )
		return( -1 );

	return( 0 );
}
コード例 #2
0
ファイル: bandmean.c プロジェクト: homerjam/libvips
static int
vips_bandmean_build( VipsObject *object )
{
	VipsBandary *bandary = (VipsBandary *) object;
	VipsBandmean *bandmean = (VipsBandmean *) object;

	if( bandmean->in &&
		bandmean->in->Bands == 1 ) 
		return( vips_bandary_copy( bandary ) );

	bandary->out_bands = 1;
	bandary->n = 1;
	bandary->in = &bandmean->in;

	if( VIPS_OBJECT_CLASS( vips_bandmean_parent_class )->build( object ) )
		return( -1 );

	return( 0 );
}