diff --git a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
index 62cac378d7..7b68a0250f 100644
--- a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
+++ b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
@@ -70,6 +70,28 @@ namespace Avalonia.Headless
return new HeadlessBitmapStub(new Size(1, 1), new Vector(96, 96));
}
+ public IWriteableBitmapImpl LoadWriteableBitmapToWidth(Stream stream, int width,
+ BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality)
+ {
+ return new HeadlessBitmapStub(new Size(1, 1), new Vector(96, 96));
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmapToHeight(Stream stream, int height,
+ BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality)
+ {
+ return new HeadlessBitmapStub(new Size(1, 1), new Vector(96, 96));
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmap(string fileName)
+ {
+ return new HeadlessBitmapStub(new Size(1, 1), new Vector(96, 96));
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmap(Stream stream)
+ {
+ return new HeadlessBitmapStub(new Size(1, 1), new Vector(96, 96));
+ }
+
public IBitmapImpl LoadBitmap(PixelFormat format, AlphaFormat alphaFormat, IntPtr data, PixelSize size, Vector dpi, int stride)
{
return new HeadlessBitmapStub(new Size(1, 1), new Vector(96, 96));
diff --git a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
index 6ae27870e8..e8757bbb34 100644
--- a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
+++ b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
@@ -188,6 +188,28 @@ namespace Avalonia.Direct2D1
return new WicBitmapImpl(stream);
}
+ public IWriteableBitmapImpl LoadWriteableBitmapToWidth(Stream stream, int width,
+ BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality)
+ {
+ return new WriteableWicBitmapImpl(stream, width, true, interpolationMode);
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmapToHeight(Stream stream, int height,
+ BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality)
+ {
+ return new WriteableWicBitmapImpl(stream, height, false, interpolationMode);
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmap(string fileName)
+ {
+ return new WriteableWicBitmapImpl(fileName);
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmap(Stream stream)
+ {
+ return new WriteableWicBitmapImpl(stream);
+ }
+
///
public IBitmapImpl LoadBitmapToWidth(Stream stream, int width, BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality)
{
diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
index 3261c45f15..fef6a9aa82 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
@@ -1,4 +1,5 @@
using System;
+using System.IO;
using Avalonia.Platform;
using SharpDX.WIC;
using PixelFormat = Avalonia.Platform.PixelFormat;
@@ -7,11 +8,27 @@ namespace Avalonia.Direct2D1.Media.Imaging
{
class WriteableWicBitmapImpl : WicBitmapImpl, IWriteableBitmapImpl
{
+ public WriteableWicBitmapImpl(Stream stream, int decodeSize, bool horizontal,
+ Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode interpolationMode)
+ : base(stream, decodeSize, horizontal, interpolationMode)
+ {
+ }
+
public WriteableWicBitmapImpl(PixelSize size, Vector dpi, PixelFormat? pixelFormat, AlphaFormat? alphaFormat)
: base(size, dpi, pixelFormat, alphaFormat)
{
}
+ public WriteableWicBitmapImpl(Stream stream)
+ : base(stream)
+ {
+ }
+
+ public WriteableWicBitmapImpl(string fileName)
+ : base(fileName)
+ {
+ }
+
class LockedBitmap : ILockedFramebuffer
{
private readonly WriteableWicBitmapImpl _parent;
diff --git a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
index e73a76357a..b7f9cc34ca 100644
--- a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
+++ b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
@@ -66,6 +66,28 @@ namespace Avalonia.UnitTests
return Mock.Of();
}
+ public IWriteableBitmapImpl LoadWriteableBitmapToWidth(Stream stream, int width,
+ BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmapToHeight(Stream stream, int height,
+ BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmap(string fileName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IWriteableBitmapImpl LoadWriteableBitmap(Stream stream)
+ {
+ throw new NotImplementedException();
+ }
+
public IBitmapImpl LoadBitmap(string fileName)
{
return Mock.Of();