コード例 #1
0
        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)));
        }
コード例 #2
0
        public byte[] Encode()
        {
            byte[] data = codec.EncodeColors(image.GetColorArray());

            if (filter != null)
            {
                data = filter.ApplyFilter(data);
            }

            return(data);
        }