Example #1
0
        public void TestCopyWritableBitmap()
        {
            var src256 = new MemoryBitmap <Byte>(256, 256, Pixel.Luminance8.Format)
                         .AsSpanBitmap()
                         .WithWPF();

            var src512 = new MemoryBitmap <Byte>(512, 512, Pixel.Luminance8.Format)
                         .AsSpanBitmap()
                         .WithWPF();

            WriteableBitmap dst = null;

            bool allPixelsEqualTo(WriteableBitmap bmp, Byte pix)
            {
                return(bmp.ToMemoryBitmap()
                       .OfType <Byte>()
                       .EnumeratePixels()
                       .All(item => item.Pixel == pix));
            }

            src256.Source.SetPixels <Byte>(100);
            src256.CopyTo(ref dst);
            Assert.NotNull(dst);
            Assert.AreEqual(typeof(WriteableBitmap), dst.GetType());
            Assert.AreEqual(256, dst.PixelWidth);
            Assert.AreEqual(256, dst.PixelHeight);
            Assert.IsTrue(allPixelsEqualTo(dst, 100));

            src256.Source.SetPixels <Byte>(105);
            src256.CopyTo(ref dst);
            Assert.IsTrue(allPixelsEqualTo(dst, 105));

            src512.Source.SetPixels <Byte>(130);
            src512.CopyTo(ref dst);
            Assert.NotNull(dst);
            Assert.AreEqual(typeof(WriteableBitmap), dst.GetType());
            Assert.AreEqual(512, dst.PixelWidth);
            Assert.AreEqual(512, dst.PixelHeight);
            Assert.IsTrue(allPixelsEqualTo(dst, 130));

            src512.Source.SetPixels <Byte>(135);
            src512.CopyTo(ref dst);
            Assert.IsTrue(allPixelsEqualTo(dst, 135));
        }