summary refs log tree commit diff
path: root/extra/admin-api/Spacebar.Cdn/Extensions/FileSourceExtensions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Spacebar.Cdn/Extensions/FileSourceExtensions.cs')
-rw-r--r--extra/admin-api/Spacebar.Cdn/Extensions/FileSourceExtensions.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/extra/admin-api/Spacebar.Cdn/Extensions/FileSourceExtensions.cs b/extra/admin-api/Spacebar.Cdn/Extensions/FileSourceExtensions.cs
new file mode 100644

index 00000000..218ba6a2 --- /dev/null +++ b/extra/admin-api/Spacebar.Cdn/Extensions/FileSourceExtensions.cs
@@ -0,0 +1,25 @@ +using ImageMagick; +using FileInfo = Spacebar.Interop.Cdn.Abstractions.FileInfo; + +namespace Spacebar.Cdn.Extensions; + +public static class FileSourceExtensions { + public static async Task<MagickImageCollection> ToMagickImageCollectionAsync(this FileInfo fileInfo) { + var ms = new MemoryStream(); + fileInfo.Stream.Position = 0; + await fileInfo.Stream.CopyToAsync(ms); + ms.Position = 0; + var img = fileInfo.MimeType switch { + "image/apng" => new MagickImageCollection(ms, MagickFormat.APng), + _ => new MagickImageCollection(ms) + }; + + // if (img.First().Format == MagickFormat.Png) { + // img.Dispose(); + // ms.Position = 0; + // img = new MagickImageCollection(ms, MagickFormat.APng); + // } + + return img; + } +} \ No newline at end of file