private byte[] EncodeFromReference() { int[] indexes = referenceImage.GetColorArray().Select((c) => (c.R >> (8 - codec.BitDepth))).ToArray(); if (colorEncoder != null) { EncodedPalettes = new List <byte[]>(Palettes.Count); foreach (Color[] pal in Palettes) { EncodedPalettes.Add(colorEncoder.EncodeColors(paletteFilter == null ? pal : paletteFilter.ApplyFilter(pal))); } } return(imageFilter == null?codec.PackIndexes(indexes) : imageFilter.ApplyFilter(codec.PackIndexes(indexes))); }
public byte[] Encode() { byte[] data = codec.EncodeColors(image.GetColorArray()); if (filter != null) { data = filter.ApplyFilter(data); } return(data); }