示例#1
0
文件: Program.cs 项目: MatasGos/BMAN
        public static void AdapterDemo()
        {
            GraphicsAdapter <Bitmap, Color> graphics = new BitmapConcreteAdapter(5, 5);

            graphics.LockBits();
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    graphics.SetPixel(i, j, Color.Blue);
                }
            }
            graphics.UnlockBits();
            Color[,] pixels = graphics.GetColorArray();
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    if (j != 4)
                    {
                        Console.Write(pixels[i, j] + " | ");
                    }
                    else
                    {
                        Console.WriteLine(pixels[i, j]);
                    }
                }
            }
        }
示例#2
0
        public void LockBits2Test()
        {
            BitmapConcreteAdapter adapter = new BitmapConcreteAdapter(10, 10);
            bool exceptionThrown          = false;

            adapter.LockBits();
            try
            {
                adapter.LockBits();
            }
            catch
            {
                exceptionThrown = true;
            }
            Assert.IsTrue(exceptionThrown);
        }
示例#3
0
        public void GetColorArrayTest()
        {
            BitmapConcreteAdapter adapter = new BitmapConcreteAdapter(10, 10);
            Bitmap picture1 = adapter.GetImage();

            adapter.LockBits();
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    adapter.SetPixel(i, j, Color.Red);
                }
            }
            adapter.UnlockBits();
            Color[,] colorArray = adapter.GetColorArray();
            Bitmap picture = adapter.GetImage();

            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    Assert.AreEqual(picture.GetPixel(i, j), colorArray[i, j]);
                }
            }
        }
示例#4
0
        public void SetPixelTest()
        {
            BitmapConcreteAdapter adapter = new BitmapConcreteAdapter(10, 10);
            Bitmap picture1 = adapter.GetImage();

            adapter.LockBits();
            adapter.SetPixel(0, 0, Color.Red);
            adapter.UnlockBits();
            Assert.AreEqual(Color.Red.ToArgb(), picture1.GetPixel(0, 0).ToArgb());
        }
示例#5
0
        public void LockBitsTest()
        {
            BitmapConcreteAdapter adapter = new BitmapConcreteAdapter(10, 10);
            Bitmap picture1 = adapter.GetImage();

            adapter.LockBits();
            bool exceptionThrown = false;

            try
            {
                picture1.GetPixel(0, 0);
            }
            catch
            {
                exceptionThrown = true;
            }
            Assert.IsTrue(exceptionThrown);
        }