LANCommander/LANCommander.Client/UI/Components/MediaImage.razor
Pat Hartl 651fb83ce5 Reduce overall RAM usage
Loads images by registering a custom handler instead of Blazor passing image data through. Ends up being a bit faster and saves on RAM since the browser can cache it instead of loading everything into memory.
2024-06-08 02:58:18 -05:00

25 lines
627 B
Text

@using LANCommander.Client.Data.Models
@inject MediaService MediaService
@if (Media != null)
{
<img src="media://@(Media.FileId)-@(Media.Crc32)?mime=@(Media.MimeType)" />
}
@code {
[Parameter] public Guid Id { get; set; }
[Parameter] public string Class { get; set; }
Media Media { get; set; }
string Data { get; set; }
protected override async Task OnParametersSetAsync()
{
Media = await MediaService.Get(Id);
var path = MediaService.GetImagePath(Media);
if (File.Exists(path))
Data = Convert.ToBase64String(await File.ReadAllBytesAsync(path));
}
}