|
|
@@ -0,0 +1,84 @@
|
|
|
+using System.Threading.Tasks;
|
|
|
+using Avalonia.Controls;
|
|
|
+using Avalonia.Media;
|
|
|
+using Avalonia.Media.Imaging;
|
|
|
+using Xunit;
|
|
|
+
|
|
|
+#if AVALONIA_SKIA
|
|
|
+namespace Avalonia.Skia.RenderTests
|
|
|
+#else
|
|
|
+namespace Avalonia.Direct2D1.RenderTests.Media
|
|
|
+#endif
|
|
|
+{
|
|
|
+ public class ImageDrawingTests : TestBase
|
|
|
+ {
|
|
|
+ public ImageDrawingTests()
|
|
|
+ : base(@"Media\ImageDrawing")
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+ private string BitmapPath
|
|
|
+ {
|
|
|
+ get { return System.IO.Path.Combine(OutputPath, "github_icon.png"); }
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public async Task ImageDrawing_Fill()
|
|
|
+ {
|
|
|
+ Decorator target = new Decorator
|
|
|
+ {
|
|
|
+ Width = 200,
|
|
|
+ Height = 200,
|
|
|
+ Child = new Image
|
|
|
+ {
|
|
|
+ Source = new DrawingImage
|
|
|
+ {
|
|
|
+ Drawing = new ImageDrawing
|
|
|
+ {
|
|
|
+ ImageSource = new Bitmap(BitmapPath),
|
|
|
+ Rect = new Rect(0, 0, 200, 200),
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ await RenderToFile(target);
|
|
|
+ CompareImages();
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public async Task ImageDrawing_BottomRight()
|
|
|
+ {
|
|
|
+ Decorator target = new Decorator
|
|
|
+ {
|
|
|
+ Width = 200,
|
|
|
+ Height = 200,
|
|
|
+ Child = new Image
|
|
|
+ {
|
|
|
+ Source = new DrawingImage
|
|
|
+ {
|
|
|
+ Drawing = new DrawingGroup
|
|
|
+ {
|
|
|
+ Children =
|
|
|
+ {
|
|
|
+ new GeometryDrawing
|
|
|
+ {
|
|
|
+ Geometry = StreamGeometry.Parse("m0,0 l200,200"),
|
|
|
+ Brush = Brushes.Black,
|
|
|
+ },
|
|
|
+ new ImageDrawing
|
|
|
+ {
|
|
|
+ ImageSource = new Bitmap(BitmapPath),
|
|
|
+ Rect = new Rect(100, 100, 100, 100),
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ await RenderToFile(target);
|
|
|
+ CompareImages();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|