public void IndexerOutOfRangeAbove()
        {
            var colorTable = new SKColorTable(Colors);

            Assert.Throws <ArgumentOutOfRangeException>(() =>
            {
                var color = colorTable[250];
            });
        }
示例#2
0
        public void CreateIndex8Bitmap()
        {
            var info   = new SKImageInfo(320, 240, SKColorType.Index8, SKAlphaType.Opaque);
            var ct     = new SKColorTable(Colors);
            var bitmap = new SKBitmap(info, ct);

            Assert.IsNotNull(bitmap);
            Assert.AreEqual(ct, bitmap.ColorTable);
        }
示例#3
0
        public void MembersRetrieveColors()
        {
            var colorTable = new SKColorTable(Colors);

            Assert.Equal(Colors.Length, colorTable.Count);

            Assert.Equal(Colors, colorTable.Colors);

            Assert.Equal(Colors[0], colorTable[0]);
            Assert.Equal(Colors[1], colorTable[1]);
            Assert.Equal(Colors[2], colorTable[2]);
            Assert.Equal(Colors[3], colorTable[3]);
            Assert.Equal(Colors[4], colorTable[4]);
        }
        public void MembersRetrieveSingleColorWithAlpha()
        {
            var c   = (SKColor)0x33008200;
            var pm  = SKPMColor.PreMultiply(c);
            var upm = SKPMColor.UnPreMultiply(pm);

            Assert.AreEqual(new SKColor(0x33008200), c);
            Assert.AreEqual(new SKPMColor(0x33001A00), pm);
            Assert.AreEqual(new SKColor(0x33008200), upm);

            var ctContents = new[] { pm };
            var ct         = new SKColorTable(ctContents, 1);

            Assert.AreEqual(1, ct.Count);

            Assert.AreEqual(new SKPMColor(0x33001A00), ct[0]);
        }
        public void MembersRetrieveColors()
        {
            var colorTable = new SKColorTable(Colors);

            Assert.AreEqual(Colors.Length, colorTable.Count);

            Assert.AreEqual(PMColors, colorTable.Colors);
            Assert.AreEqual(Colors, colorTable.UnPreMultipledColors);

            Assert.AreEqual(PMColors[0], colorTable[0]);
            Assert.AreEqual(PMColors[1], colorTable[1]);
            Assert.AreEqual(PMColors[2], colorTable[2]);
            Assert.AreEqual(PMColors[3], colorTable[3]);
            Assert.AreEqual(PMColors[4], colorTable[4]);
            Assert.AreEqual(PMColors[5], colorTable[5]);

            Assert.AreNotEqual(Colors[0], colorTable[0]);
            Assert.AreNotEqual(Colors[1], colorTable[1]);
            Assert.AreNotEqual(Colors[2], colorTable[2]);
            Assert.AreNotEqual(Colors[3], colorTable[3]);
            Assert.AreNotEqual(Colors[4], colorTable[4]);
            Assert.AreNotEqual(Colors[5], colorTable[5]);
        }
示例#6
0
        public void Index8ImageCanChangeColorTable()
        {
            var path = Path.Combine(PathToImages, "index8.png");

            var codec  = SKCodec.Create(new SKFileStream(path));
            var info   = new SKImageInfo(codec.Info.Width, codec.Info.Height, SKColorType.Index8, SKAlphaType.Premul);
            var bitmap = SKBitmap.Decode(codec, info);

            var colorTable = bitmap.ColorTable;

            Assert.AreEqual((SKColor)0xFFA4C639, colorTable.GetUnPreMultipliedColor(255));

            var invertedColors = colorTable.Colors.Select(c =>
            {
                var c2  = (SKColor)c;
                var inv = new SKColor((byte)(255 - c2.Red), (byte)(255 - c2.Green), (byte)(255 - c2.Blue), c2.Alpha);
                return((SKPMColor)inv);
            }).ToArray();

            colorTable = new SKColorTable(invertedColors);
            bitmap.SetColorTable(colorTable);

            Assert.AreEqual((SKColor)0xFF5B39C6, colorTable.GetUnPreMultipliedColor(255));
        }
示例#7
0
        public void IndexerOutOfRangeAbove()
        {
            var colorTable = new SKColorTable(Colors);

            var color = colorTable[5];
        }
示例#8
0
        public void IndexerOutOfRangeBelow()
        {
            var colorTable = new SKColorTable(Colors);

            var color = colorTable[-1];
        }