Beispiel #1
0
        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);
        }