shoko/Media/MagickMediaHandler.cs

32 lines
748 B
C#
Raw Normal View History

using Raylib_cs;
using ImageMagick;
namespace Shoko;
[MediaType("image/*")]
class MagickMediaHandler : ImageMediaHandler
{
public MagickMediaHandler(ProtoHandler content)
{
Content = content;
}
2023-10-20 04:59:28 +00:00
public override async Task Load()
{
Title = Content.URL.AbsolutePath;
2023-10-20 04:59:28 +00:00
using(var magic = new MagickImage())
{
2023-10-20 04:59:28 +00:00
await magic.ReadAsync(Content.Content);
magic.Format = MagickFormat.Png;
var image = Raylib.LoadImageFromMemory(".png", magic.ToByteArray());
Texture = Raylib.LoadTextureFromImage(image);
Raylib.UnloadImage(image);
}
2023-10-20 04:59:28 +00:00
OnLoaded();
}
~MagickMediaHandler()
{
Raylib.UnloadTexture(Texture);
}
}