public IImageConfiguration Clone() { var config = new ImageConfiguration(); config.PadSize.With(options => options.To(size => _padSizeConfiguration.Options.Build(size))); if (_taskCount != Environment.ProcessorCount) { config.WithDegreeOfParallelism(_taskCount); } if (_remapPixelsConfiguration.Delegate != null) { config.RemapPixels.With(_remapPixelsConfiguration.Delegate); } if (_shadeColorsConfiguration.Delegate != null) { config.ShadeColors.With(_shadeColorsConfiguration.Delegate); } if (_quantizationConfiguration != null) { config.SetQuantizationConfiguration(_quantizationConfiguration); } if (_transcodeConfiguration.ColorEncoding != null) { return(config.Transcode.With(_transcodeConfiguration.ColorEncoding)); } if (_transcodeConfiguration.IndexEncoding == null) { return(config); } var indexConfig = config.Transcode.With(_transcodeConfiguration.IndexEncoding); return(_transcodePaletteConfiguration.PaletteEncoding != null? indexConfig.TranscodePalette.With(_transcodePaletteConfiguration.PaletteEncoding) : config); }