WriteableBitmapUtilityTests.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Avalonia.Media;
  2. using Avalonia.Media.Imaging;
  3. using Avalonia.Platform;
  4. using PixiEditor.AvaloniaUI.Helpers;
  5. using PixiEditor.AvaloniaUI.Helpers.Extensions;
  6. using PixiEditor.DrawingApi.Core.Numerics;
  7. using PixiEditor.Numerics;
  8. namespace PixiEditor.Tests;
  9. public class WriteableBitmapUtilityTests
  10. {
  11. [Fact]
  12. public void TestThatFromBgra8888ArrayReturnsCorrectWriteableBitmap()
  13. {
  14. byte[] bgra8888 = new byte[4];
  15. Color color = Color.FromArgb(5, 150, 200, 255);
  16. bgra8888[0] = color.B;
  17. bgra8888[1] = color.G;
  18. bgra8888[2] = color.R;
  19. bgra8888[3] = color.A;
  20. VecI size = new(1, 1);
  21. WriteableBitmap result = WriteableBitmapUtility.FromBgra8888Array(bgra8888, size);
  22. Assert.NotNull(result);
  23. Assert.Equal(1, result.PixelSize.Width);
  24. Assert.Equal(1, result.PixelSize.Height);
  25. Assert.Equal(96, result.Dpi.X);
  26. Assert.Equal(96, result.Dpi.Y);
  27. Assert.Equal(PixelFormats.Bgra8888, result.Format);
  28. using ILockedFramebuffer frameBuffer = result.Lock();
  29. Assert.Equal(4, frameBuffer.RowBytes);
  30. Assert.Equal(1, frameBuffer.Size.Width);
  31. Assert.Equal(1, frameBuffer.Size.Height);
  32. Assert.Equal(color, frameBuffer.GetPixel(0, 0));
  33. }
  34. }