package pl.wroc.pwr.image.model; import java.util.ArrayList; import java.util.List; import pl.wroc.pwr.image.IImage; import pl.wroc.pwr.imagechannel.IImageChannel; import pl.wroc.pwr.imagechannel.factory.ImageChannelFactory; public class MultiChannelImage implements IImage { /** * */ private static final long serialVersionUID = 7015786339793655866L; private List< IImageChannel > channels; public MultiChannelImage( int number, int sizeX, int sizeY ) { this.channels = new ArrayList< IImageChannel >( ); for ( int i = 0; i < number; i++ ) { this.channels.add(new ImageChannelFactory( sizeX, sizeY ).apply() ); } } public MultiChannelImage( List< IImageChannel > channels ) { this.channels = channels; } public MultiChannelImage( IImageChannel[ ] channels ) { this.channels = new ArrayList< IImageChannel >( ); for ( int i = 0; i < channels.length; i++ ) { this.channels.add( channels[ i ] ); } } public int getNumberOfChannels( ) { return this.channels.size( ); } public IImageChannel getChannel( int number ) { return this.channels.get( number ); } public void setChannel( IImageChannel channel, int number ) { this.channels.set( number, channel ); } public int[ ] getSize( ) { return this.channels.get( 0 ).getSize( ); } public int getXSize( ) { return this.channels.get( 0 ).getXSize( ); } public int getYSize( ) { return this.channels.get( 0 ).getYSize( ); } public String getChannelName(int number) { return "Channel" + number; } }