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
|