在Blazor Server中,将图像转换为Base64字符串是一项常见任务。需要使用JavaScript来完成此操作。以下是一种可行的解决方案:
await UploadFile(e)">
@code {
private async Task UploadFile(InputFileChangeEventArgs e)
{
var file = e.File;
var extension = Path.GetExtension(file.Name);
var format = GetImageFormat(extension);
var imageFile = await file.OpenReadStream().ReadAllBytesAsync();
var base64 = await jsRuntime.InvokeAsync
private ImageFormat GetImageFormat(string extension)
{
switch (extension)
{
case ".jpg":
return ImageFormat.Jpeg;
case ".jpeg":
return ImageFormat.Jpeg;
case ".png":
return ImageFormat.Png;
default:
throw new NotImplementedException();
}
}
}
请注意,在使用此代码之前,您需要将以下命名空间添加到代码文件中:
using System.IO; using System.Drawing.Imaging; using Microsoft.AspNetCore.Components.Forms; using Microsoft.JSInterop;