public void Load(Stream mystream, int SamplePercentage) { PalletPixelCount.Clear(); Image <Rgba32> image = Image.Load <Rgba32>(mystream); var quantizer = new WuQuantizer <Rgba32>(); var quantizationResults = quantizer.Quantize(image.Frames.RootFrame, PaletteCount); PalletPixelCount = quantizationResults.Pixels.GroupBy(P => P) .Select(group => new KeyValuePair <Rgba32, int>(quantizationResults.Palette[group.Key], group.Count())) .OrderByDescending(I => I.Value) .ToList(); }
public void WuQuantizerYieldsCorrectTransparentPixel <TPixel>(TestImageProvider <TPixel> provider, bool dither) where TPixel : struct, IPixel <TPixel> { using (Image <TPixel> image = provider.GetImage()) { Assert.True(image[0, 0].Equals(default(TPixel))); IQuantizer <TPixel> quantizer = new WuQuantizer <TPixel> { Dither = dither }; foreach (ImageFrame <TPixel> frame in image.Frames) { QuantizedImage <TPixel> quantized = quantizer.Quantize(frame, 256); int index = this.GetTransparentIndex(quantized); Assert.Equal(index, quantized.Pixels[0]); } } }