| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System.IO;
- using System.Runtime.CompilerServices;
- using System.Threading.Tasks;
- using Avalonia.Controls;
- using Avalonia.Media;
- using Avalonia.Media.Imaging;
- using Xunit;
- namespace Avalonia.Skia.RenderTests
- {
- public class ImageBlendTests : TestBase
- {
- private readonly Bitmap _bitmapBase;
- private readonly Bitmap _bitmapOver;
- public ImageBlendTests()
- : base(@"Controls\Image\blend")
- {
- _bitmapBase = new Bitmap(Path.Combine(OutputPath, "Cat.jpg"));
- _bitmapOver = new Bitmap(Path.Combine(OutputPath, "ColourShading - by Stib.png"));
- }
- [Fact]
- public async Task Image_Blend_Nothing() => await TestBlendMode(BitmapBlendingMode.Unspecified);
- [Fact]
- public async Task Image_Blend_Plus() => await TestBlendMode(BitmapBlendingMode.Plus);
- [Fact]
- public async Task Image_Blend_Screen() => await TestBlendMode(BitmapBlendingMode.Screen);
- [Fact]
- public async Task Image_Blend_Overlay() => await TestBlendMode(BitmapBlendingMode.Overlay);
- [Fact]
- public async Task Image_Blend_Darken() => await TestBlendMode(BitmapBlendingMode.Darken);
- [Fact]
- public async Task Image_Blend_Lighten() => await TestBlendMode(BitmapBlendingMode.Lighten);
- [Fact]
- public async Task Image_Blend_ColorDodge() => await TestBlendMode(BitmapBlendingMode.ColorDodge);
- [Fact]
- public async Task Image_Blend_ColorBurn() => await TestBlendMode(BitmapBlendingMode.ColorBurn);
- [Fact]
- public async Task Image_Blend_HardLight() => await TestBlendMode(BitmapBlendingMode.HardLight);
- [Fact]
- public async Task Image_Blend_SoftLight() => await TestBlendMode(BitmapBlendingMode.SoftLight);
- [Fact]
- public async Task Image_Blend_Difference() => await TestBlendMode(BitmapBlendingMode.Difference);
- [Fact]
- public async Task Image_Blend_Exclusion() => await TestBlendMode(BitmapBlendingMode.Exclusion);
- [Fact]
- public async Task Image_Blend_Multiply() => await TestBlendMode(BitmapBlendingMode.Multiply);
- [Fact]
- public async Task Image_Blend_Hue() => await TestBlendMode(BitmapBlendingMode.Hue);
- [Fact]
- public async Task Image_Blend_Saturation() => await TestBlendMode(BitmapBlendingMode.Saturation);
- [Fact]
- public async Task Image_Blend_Color() => await TestBlendMode(BitmapBlendingMode.Color);
- [Fact]
- public async Task Image_Blend_Luminosity() => await TestBlendMode(BitmapBlendingMode.Luminosity);
- private async Task TestBlendMode(BitmapBlendingMode blendMode, [CallerMemberName] string testName = "")
- {
- var panel = new Panel();
- panel.Children.Add(new Image() { Source = _bitmapBase });
- panel.Children.Add(new Image() { Source = _bitmapOver, BlendMode = blendMode });
- var target = new Decorator
- {
- Width = 512,
- Height = 512,
- Child = new Border
- {
- Background = Brushes.Red,
- Child = panel
- }
- };
- await RenderToFile(target,testName);
- CompareImages(testName);
- }
- }
- }
|