public IImageConfiguration Clone() { var config = new ImageConfiguration(); if (_taskCount != Environment.ProcessorCount) { config.WithTaskCount(_taskCount); } if (_paddedSizeFunc != null) { config.PadSizeWith(_paddedSizeFunc); } if (_swizzleFunc != null) { config.RemapPixelsWith(_swizzleFunc); } if (_quantizationConfiguration != null) { config.SetQuantizationConfiguration(_quantizationConfiguration); } if (_colorFunc != null) { return(config.TranscodeWith(_colorFunc)); } if (_indexFunc == null) { return(config); } var indexConfig = config.TranscodeWith(_indexFunc); return(_paletteFunc != null? indexConfig.TranscodePaletteWith(_paletteFunc) : config); }