write thumbnail to wallet store
This commit is contained in:
@@ -8,4 +8,4 @@ public interface IImageResizer
|
|||||||
int targetWidth,
|
int targetWidth,
|
||||||
int targetHeight,
|
int targetHeight,
|
||||||
bool maintainAspectRatio);
|
bool maintainAspectRatio);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,9 @@ public static class IServiceCollectionExtensions
|
|||||||
{
|
{
|
||||||
services.AddTransient<ITopLevelProvider, TopLevelProvider>();
|
services.AddTransient<ITopLevelProvider, TopLevelProvider>();
|
||||||
services.AddTransient<IFileProvider, FileProvider>();
|
services.AddTransient<IFileProvider, FileProvider>();
|
||||||
services.AddTransient<IImageProvider, ImageProvider>();
|
|
||||||
|
services.AddTransient<IImageReader, ImageReader>();
|
||||||
|
services.AddTransient<IImageWriter, ImageWriter>();
|
||||||
services.AddTransient<IImageResizer, ImageResizer>();
|
services.AddTransient<IImageResizer, ImageResizer>();
|
||||||
|
|
||||||
services.AddTransient<IDispatcher, AvaloniaDispatcher>();
|
services.AddTransient<IDispatcher, AvaloniaDispatcher>();
|
||||||
@@ -149,6 +151,10 @@ public static class IServiceCollectionExtensions
|
|||||||
services.AddTransient((Func<IServiceProvider, IProxyServiceCollection<IComponentBuilder>>)(provider =>
|
services.AddTransient((Func<IServiceProvider, IProxyServiceCollection<IComponentBuilder>>)(provider =>
|
||||||
new ProxyServiceCollection<IComponentBuilder>(services =>
|
new ProxyServiceCollection<IComponentBuilder>(services =>
|
||||||
{
|
{
|
||||||
|
services.AddTransient<IImageReader, ImageReader>();
|
||||||
|
services.AddTransient<IImageWriter, ImageWriter>();
|
||||||
|
services.AddTransient<IImageResizer, ImageResizer>();
|
||||||
|
|
||||||
services.AddSingleton(provider.GetRequiredService<IDispatcher>());
|
services.AddSingleton(provider.GetRequiredService<IDispatcher>());
|
||||||
services.AddTransient<IContentTemplate, ContentTemplate>();
|
services.AddTransient<IContentTemplate, ContentTemplate>();
|
||||||
|
|
||||||
|
|||||||
@@ -3,17 +3,15 @@ using Toolkit.Foundation;
|
|||||||
|
|
||||||
namespace Toolkit.Avalonia;
|
namespace Toolkit.Avalonia;
|
||||||
|
|
||||||
public class ImageProvider(IImageResizer imageResizer) :
|
public class ImageReader(IImageResizer imageResizer) :
|
||||||
IImageProvider
|
IImageReader
|
||||||
{
|
{
|
||||||
public async Task<IImageDescriptor> Get(string filePath,
|
public async Task<IImageDescriptor> Get(Stream stream,
|
||||||
int width,
|
int width,
|
||||||
int height,
|
int height,
|
||||||
bool maintainAspectRatio)
|
bool maintainAspectRatio)
|
||||||
{
|
{
|
||||||
await using FileStream stream = File.OpenRead(filePath);
|
|
||||||
Bitmap resizedImage = imageResizer.Resize(stream, width, height, maintainAspectRatio);
|
Bitmap resizedImage = imageResizer.Resize(stream, width, height, maintainAspectRatio);
|
||||||
|
|
||||||
return new ImageDescriptor(resizedImage, width, height);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
|
namespace Toolkit.Foundation;
|
||||||
namespace Toolkit.Foundation;
|
|
||||||
|
|
||||||
public record Activated
|
public record Activated
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
namespace Toolkit.Foundation;
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
public interface IImageProvider
|
public interface IImageReader
|
||||||
{
|
{
|
||||||
Task<IImageDescriptor> Get(string filePath,
|
Task<IImageDescriptor> Get(Stream stream,
|
||||||
int width,
|
int width,
|
||||||
int height,
|
int height,
|
||||||
bool maintainAspectRatio = false);
|
bool maintainAspectRatio = false);
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
|
public interface IImageWriter
|
||||||
|
{
|
||||||
|
void Write(IImageDescriptor imageDescriptor, Stream stream);
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
|
public class Read
|
||||||
|
{
|
||||||
|
public static ReadEventArgs<TSender> As<TSender>(TSender sender) =>
|
||||||
|
new(sender);
|
||||||
|
|
||||||
|
public static ReadEventArgs<TSender> As<TSender>() where TSender : new() =>
|
||||||
|
new(new TSender());
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
|
public record ReadEventArgs<TSender>(TSender? Sender = default);
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
public class Request
|
public class Request
|
||||||
{
|
{
|
||||||
public static RequestEventArgs<TValue> As<TValue>(TValue value) =>
|
public static RequestEventArgs<TSender> As<TSender>(TSender sender) =>
|
||||||
new(value);
|
new(sender);
|
||||||
|
|
||||||
public static RequestEventArgs<TValue> As<TValue>() where TValue : new() =>
|
public static RequestEventArgs<TSender> As<TSender>() where TSender : new() =>
|
||||||
new(new TValue());
|
new(new TSender());
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
namespace Toolkit.Foundation;
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
public record RequestEventArgs<TSender>(TSender? Sender = default);
|
public record RequestEventArgs<TSender>(TSender? Sender = default);
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
|
public class Write
|
||||||
|
{
|
||||||
|
public static WriteEventArgs<TSender> As<TSender>(TSender sender) =>
|
||||||
|
new(sender);
|
||||||
|
|
||||||
|
public static WriteEventArgs<TSender> As<TSender>() where TSender : new() =>
|
||||||
|
new(new TSender());
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
namespace Toolkit.Foundation;
|
||||||
|
|
||||||
|
public record WriteEventArgs<TSender>(TSender? Sender = default);
|
||||||
Reference in New Issue
Block a user