예제 #1
0
            public void InsertFrame_clones_sourceFrame()
            {
                var otherFrame = new ImageFrame <Rgba32>(Configuration.Default, 10, 10);
                ImageFrame <Rgba32> addedFrame = this.Image.Frames.InsertFrame(0, otherFrame);

                Assert.True(otherFrame.TryGetSinglePixelSpan(out Span <Rgba32> otherFrameSpan));
                addedFrame.ComparePixelBufferTo(otherFrameSpan);
                Assert.NotEqual(otherFrame, addedFrame);
            }
            public void InsertFrame_clones_sourceFrame()
            {
                using var otherFrame = new ImageFrame <Rgba32>(Configuration.Default, 10, 10);
                using ImageFrame <Rgba32> addedFrame = this.Image.Frames.InsertFrame(0, otherFrame);

                Assert.True(otherFrame.DangerousTryGetSinglePixelMemory(out Memory <Rgba32> otherFrameMem));
                addedFrame.ComparePixelBufferTo(otherFrameMem.Span);
                Assert.NotEqual(otherFrame, addedFrame);
            }
예제 #3
0
            public void CreateFrame_CustomFillColor()
            {
                this.Image.Frames.CreateFrame(Rgba32.HotPink);

                Assert.Equal(2, this.Image.Frames.Count);

                ImageFrame <Rgba32> frame = (ImageFrame <Rgba32>) this.Image.Frames[1];

                frame.ComparePixelBufferTo(Rgba32.HotPink);
            }
예제 #4
0
            public void CreateFrame_Default()
            {
                this.Image.Frames.CreateFrame();

                Assert.Equal(2, this.Image.Frames.Count);

                ImageFrame <Rgba32> frame = (ImageFrame <Rgba32>) this.Image.Frames[1];

                frame.ComparePixelBufferTo(default(Rgba32));
            }
예제 #5
0
 public void CanDecodeIntermingledImages()
 {
     using (var kumin1 = Image.Load(TestFile.Create(TestImages.Gif.Kumin).Bytes))
         using (var icon = Image.Load(TestFile.Create(TestImages.Png.Icon).Bytes))
             using (var kumin2 = Image.Load(TestFile.Create(TestImages.Gif.Kumin).Bytes))
             {
                 for (int i = 0; i < kumin1.Frames.Count; i++)
                 {
                     ImageFrame <Rgba32> first  = kumin1.Frames[i];
                     ImageFrame <Rgba32> second = kumin2.Frames[i];
                     first.ComparePixelBufferTo(second.GetPixelSpan());
                 }
             }
 }
예제 #6
0
            public void InsertFrame_OfDifferentPixelType()
            {
                using (Image <Bgra32> sourceImage = new Image <Bgra32>(
                           this.Image.GetConfiguration(),
                           this.Image.Width,
                           this.Image.Height,
                           Color.Blue))
                {
                    this.Collection.InsertFrame(0, sourceImage.Frames.RootFrame);
                }

                Rgba32[] expectedAllBlue =
                    Enumerable.Repeat(Rgba32.Blue, this.Image.Width * this.Image.Height).ToArray();

                Assert.Equal(2, this.Collection.Count);
                ImageFrame <Rgba32> actualFrame = (ImageFrame <Rgba32>) this.Collection[0];

                actualFrame.ComparePixelBufferTo(expectedAllBlue);
            }