/// <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); } })); }