Esempio n. 1
0
        public void ShouldConvertDataToPlanar2BPPImage()
        {
            using (var stream = new MemoryStream(this.hexData))
            {
                var plan = new List <List <short> >()
                {
                    new List <short>()
                    {
                        0, 0, 0, 0, 0, 0, 0, 0,
                        2, 2, 2, 2, 2, 2, 2, 2,
                        4, 4, 4, 4, 4, 4, 4, 4,
                        6, 6, 6, 6, 6, 6, 6, 6,
                        8, 8, 8, 8, 8, 8, 8, 8,
                        10, 10, 10, 10, 10, 10, 10, 10,
                        12, 12, 12, 12, 12, 12, 12, 12,
                        14, 14, 14, 14, 14, 14, 14, 14,
                    },
                    new List <short>()
                    {
                        1, 1, 1, 1, 1, 1, 1, 1,
                        3, 3, 3, 3, 3, 3, 3, 3,
                        5, 5, 5, 5, 5, 5, 5, 5,
                        7, 7, 7, 7, 7, 7, 7, 7,
                        9, 9, 9, 9, 9, 9, 9, 9,
                        11, 11, 11, 11, 11, 11, 11, 11,
                        13, 13, 13, 13, 13, 13, 13, 13,
                        15, 15, 15, 15, 15, 15, 15, 15,
                    },
                };

                var parameters = new ImagePattern()
                {
                    Format      = "Planar-2BPP",
                    Height      = 8,
                    Width       = 8,
                    TilePattern = new TilePattern(plan)
                    {
                        Height     = 8,
                        Interleave = true,
                        Order      = EnumTileOrder.Planar,
                        Size       = 16,
                        Width      = 8,
                    },
                };

                var converter = new Planar2BPP();

                var bitmap = converter.Convert(stream, parameters);

                Assert.That(this.imageData, Is.EqualTo(bitmap.Pixels));
            }
        }
Esempio n. 2
0
        public void ShouldConvertPlanar2BPPImageToData()
        {
            var plan = new List <List <short> >()
            {
                new List <short>()
                {
                    0, 0, 0, 0, 0, 0, 0, 0,
                    2, 2, 2, 2, 2, 2, 2, 2,
                    4, 4, 4, 4, 4, 4, 4, 4,
                    6, 6, 6, 6, 6, 6, 6, 6,
                    8, 8, 8, 8, 8, 8, 8, 8,
                    10, 10, 10, 10, 10, 10, 10, 10,
                    12, 12, 12, 12, 12, 12, 12, 12,
                    14, 14, 14, 14, 14, 14, 14, 14,
                },
                new List <short>()
                {
                    1, 1, 1, 1, 1, 1, 1, 1,
                    3, 3, 3, 3, 3, 3, 3, 3,
                    5, 5, 5, 5, 5, 5, 5, 5,
                    7, 7, 7, 7, 7, 7, 7, 7,
                    9, 9, 9, 9, 9, 9, 9, 9,
                    11, 11, 11, 11, 11, 11, 11, 11,
                    13, 13, 13, 13, 13, 13, 13, 13,
                    15, 15, 15, 15, 15, 15, 15, 15,
                },
            };

            var parameters = new ImagePattern()
            {
                Format      = "Planar-2BPP",
                Height      = 8,
                Width       = 8,
                TilePattern = new TilePattern(plan)
                {
                    Height     = 8,
                    Interleave = true,
                    Order      = EnumTileOrder.Planar,
                    Size       = 16,
                    Width      = 8,
                },
            };

            var imageInfo = new SKImageInfo(parameters.Width, parameters.Height, SKColorType.Rgba8888);

            var bitmap = new SKBitmap(imageInfo);

            var pixels = bitmap.Pixels;
            int i      = 0;

            foreach (var color in this.imageData)
            {
                pixels[i++] = color;
            }

            bitmap.Pixels = pixels;

            var converter = new Planar2BPP();

            var dataStream = converter.ConvertBack(bitmap, parameters);

            Assert.That(this.hexData, Is.EqualTo(dataStream.ToArray()));
        }