/// <inheritdoc cref="IIndexEncoding.Quantize(IEnumerable{Color},QuantizationSettings)"/> public (IEnumerable <IndexData> indices, IList <Color> palette) Quantize(IEnumerable <Color> colors, QuantizationSettings settings) { if (settings.ColorModel == ColorModel.RGBA) { settings.ColorModel = ColorModel.RGB; } var colorList = colors.ToList(); var(indices, palette) = Kolors.Quantize(colorList, settings); var alphaIndexData = indices. Zip(colorList, (x, y) => new { index = x, alpha = y.A }). Select(x => new AlphaIndexData(Convert.ChangeBitDepth(x.alpha, 8, _alphaDepth), x.index)); return(alphaIndexData, palette); }
/// <inheritdoc cref="IIndexEncoding.Quantize(IEnumerable{Color},QuantizationSettings)"/> public (IEnumerable <IndexData> indices, IList <Color> palette) Quantize(IEnumerable <Color> colors, QuantizationSettings settings) { var(indices, palette) = Kolors.Quantize(colors, settings); return(indices.Select(x => new IndexData(x)), palette); }