protected void SaveFrame(TextureContent texture, string filename, bool flipY = false) { var outputPath = Path.GetDirectoryName(filename); if (!Directory.Exists(outputPath)) { Directory.CreateDirectory(outputPath); } var image = new Image(); image.SetPixels(texture.Width, texture.Height, texture.Pixels); if (flipY) { image = image.FlipY(); } using (var stream = File.OpenWrite(filename)) { image.SaveAsPng(stream); } }
private void SaveAndVerifyFrame(TextureContent frame, string name) { var expectedFile = $"{ OutputPath }/{ name }.png"; if (File.Exists(expectedFile)) { using (var expectedStream = File.OpenRead(expectedFile)) { var expectedImage = new Image(expectedStream); try { Assert.Equal(expectedImage.PixelWidth, frame.Width); Assert.Equal(expectedImage.PixelHeight, frame.Height); Assert.Equal(expectedImage.Pixels, frame.Pixels); return; } catch { SaveFrame(frame, $"{ OutputPath }/{ name }.actual.png", true); throw; } } } SaveFrame(frame, expectedFile); }