Blazor [WASM]获取图像大小

问题描述

期望答案是使用jsInterop,但从来不会发问。

可以在Blazor中完成以下操作吗?

const img = new Image();
img.onload = function() {
  alert(this.width + 'x' + this.height);
}
img.src = 'http://www.google.com/intl/en_ALL/images/logo.gif';

如此处所示:How to get image size (height & width) using JavaScript?

解决方法

我能够使用Blazor Wasm上的SixLabors.ImageSharp nuget完成此任务。

protected async override Task OnInitializedAsync()
{
    var data = await client.GetByteArrayAsync(ImageUrl);
    using(var img = SixLabors.ImageSharp.Image.Load(data))
    {
        Console.WriteLine($"{img.Height}");
    }
}

我不确定是否值得进行额外的组装。 JS互操作可能对此更好。