write thumbnail to wallet store
This commit is contained in:
@@ -8,4 +8,4 @@ public interface IImageResizer
|
||||
int targetWidth,
|
||||
int targetHeight,
|
||||
bool maintainAspectRatio);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +126,9 @@ public static class IServiceCollectionExtensions
|
||||
{
|
||||
services.AddTransient<ITopLevelProvider, TopLevelProvider>();
|
||||
services.AddTransient<IFileProvider, FileProvider>();
|
||||
services.AddTransient<IImageProvider, ImageProvider>();
|
||||
|
||||
services.AddTransient<IImageReader, ImageReader>();
|
||||
services.AddTransient<IImageWriter, ImageWriter>();
|
||||
services.AddTransient<IImageResizer, ImageResizer>();
|
||||
|
||||
services.AddTransient<IDispatcher, AvaloniaDispatcher>();
|
||||
@@ -149,6 +151,10 @@ public static class IServiceCollectionExtensions
|
||||
services.AddTransient((Func<IServiceProvider, IProxyServiceCollection<IComponentBuilder>>)(provider =>
|
||||
new ProxyServiceCollection<IComponentBuilder>(services =>
|
||||
{
|
||||
services.AddTransient<IImageReader, ImageReader>();
|
||||
services.AddTransient<IImageWriter, ImageWriter>();
|
||||
services.AddTransient<IImageResizer, ImageResizer>();
|
||||
|
||||
services.AddSingleton(provider.GetRequiredService<IDispatcher>());
|
||||
services.AddTransient<IContentTemplate, ContentTemplate>();
|
||||
|
||||
|
||||
@@ -3,17 +3,15 @@ using Toolkit.Foundation;
|
||||
|
||||
namespace Toolkit.Avalonia;
|
||||
|
||||
public class ImageProvider(IImageResizer imageResizer) :
|
||||
IImageProvider
|
||||
public class ImageReader(IImageResizer imageResizer) :
|
||||
IImageReader
|
||||
{
|
||||
public async Task<IImageDescriptor> Get(string filePath,
|
||||
public async Task<IImageDescriptor> Get(Stream stream,
|
||||
int width,
|
||||
int height,
|
||||
bool maintainAspectRatio)
|
||||
{
|
||||
await using FileStream stream = File.OpenRead(filePath);
|
||||
Bitmap resizedImage = imageResizer.Resize(stream, width, height, maintainAspectRatio);
|
||||
|
||||
return new ImageDescriptor(resizedImage, width, height);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using Avalonia.Media.Imaging;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Toolkit.Avalonia;
|
||||
|
||||
public class ImageWriter :
|
||||
IImageWriter
|
||||
{
|
||||
public void Write(IImageDescriptor imageDescriptor,
|
||||
Stream stream)
|
||||
{
|
||||
if (imageDescriptor.Image is Bitmap bitmap)
|
||||
{
|
||||
bitmap.Save(stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user