public void ShouldNotConvertPixelDataIfTheFormatIsSame() { var width = 10; var height = 10; var surface = Surface.Create(width, height, PixelFormat.Format_RGBA8888); var pixels = Enumerable.Repeat <ColorRGBA8888>( new ColorRGBA8888(TestColor), surface.PixelCount).ToArray(); // Read and convert the current pixel data var currentPixels = new ColorRGBA8888[surface.PixelCount]; surface.ReadPixels(ref currentPixels); AllPixelsShouldBeEqualTo(currentPixels, new Color()); // Convert and set the pixel data surface.SetPixelData(ref pixels); surface.ReadPixels(ref currentPixels); currentPixels.Should().BeEquivalentTo(pixels); surface.Dispose(); }
public void ShouldSaveAndLoadAsPNG() { var surface = Surface.Create(10, 10); surface.Fill(TestColor); var ms = new MemoryStream(); surface.SaveAsPng(ms); surface.SaveAsPng("ShouldSaveAndLoadAsPNG.png"); ms.Seek(0, SeekOrigin.Begin); var sameSurface = SurfaceFactory.FromStream(ms, new PngDecoder()); ms.Dispose(); var pixels = new ColorRGBA8888[surface.PixelCount]; var samePixels = new ColorRGBA8888[surface.PixelCount]; surface.ReadPixels(ref pixels); sameSurface.ReadPixels(ref samePixels); samePixels.Should().BeEquivalentTo(pixels); }
public void ShouldConvertToSpecifiedFormat() { var width = 10; var height = 10; var source = Surface.Create(width, height, PixelFormat.Format_RGBA8888); var pixels = Enumerable.Repeat <ColorRGBA8888>( new ColorRGBA8888(TestColor), source.PixelCount ).ToArray(); // Set the pixel data and check it source.SetPixelData(ref pixels); var currentPixels = new ColorRGBA8888[source.PixelCount]; source.ReadPixels(ref currentPixels); currentPixels.Should().BeEquivalentTo(pixels); // Convert the surface and check it again var converted = source.ConvertTo(PixelFormat.Format_ARGB8888); source.ReadPixels(ref currentPixels); currentPixels.Should().BeEquivalentTo(pixels); source.Dispose(); converted.Dispose(); }