Exemple #1
0
        /// <inheritdoc cref="IIndexedImageAdapter.SetPalette(IndexedBitmapInfo,IList{Color},IProgress{ProgressReport})"/>
        public virtual Task <ImageTranscodeResult> SetPalette(IndexedBitmapInfo bitmapInfo, IList <Color> palette, IProgress <ProgressReport> progress)
        {
            // Validity checks
            if (bitmapInfo == null)
            {
                throw new ArgumentNullException(nameof(bitmapInfo));
            }
            if (palette == null)
            {
                throw new ArgumentNullException(nameof(palette));
            }
            if (!BitmapInfos.Contains(bitmapInfo))
            {
                throw new ArgumentException(nameof(bitmapInfo));
            }

            return(Task.Factory.StartNew(() =>
            {
                try
                {
                    var image = TranscodeWithPalette(bitmapInfo, palette, progress);
                    return new ImageTranscodeResult(image, palette);
                }
                catch (Exception ex)
                {
                    return new ImageTranscodeResult(ex);
                }
            }));
        }