/// <summary> Factory method for creating instances of this class.</summary>
/// <param name="src">-- source of image data
/// </param>
/// <param name="csMap">-- provides colorspace info
/// </param>
/// <returns> ColorSpaceMapper instance
/// </returns>
/// <exception cref="IOException">profile access exception
/// </exception>
public static BlkImgDataSrc createInstance(BlkImgDataSrc src, ColorSpace csMap)
{
// Check parameters
csMap.pl.checkList(OPT_PREFIX, CSJ2K.j2k.util.ParameterList.toNameArray(pinfo));
// Perform ICCProfiling or ColorSpace tranfsormation.
if (csMap.Method == ColorSpace.MethodEnum.ICC_PROFILED)
{
return(ICCProfiler.createInstance(src, csMap));
}
else
{
ColorSpace.CSEnum colorspace = csMap.getColorSpace();
if (colorspace == ColorSpace.CSEnum.sRGB)
{
return(EnumeratedColorSpaceMapper.createInstance(src, csMap));
}
else if (colorspace == ColorSpace.CSEnum.GreyScale)
{
return(EnumeratedColorSpaceMapper.createInstance(src, csMap));
}
else if (colorspace == ColorSpace.CSEnum.sYCC)
{
return(SYccColorSpaceMapper.createInstance(src, csMap));
}
if (colorspace == ColorSpace.CSEnum.esRGB)
{
return(EsRgbColorSpaceMapper.createInstance(src, csMap));
}
else if (colorspace == ColorSpace.CSEnum.Unknown)
{
return(null);
}
else
{
throw new ColorSpaceException("Bad color space specification in image");
}
}
}