在 blazor 中显示来自字节数组的图像

Display image from byte array in blazor

我正在使用 blazor webassembly,我需要在客户端显示存储为字节数组的图像。

我试过了

在 C# 中:

imagesrc= Convert.ToBase64String(imageBytes);
imageDataURL = string.Format("data:image/jpeg;base64,{0}", imagesrc);

在标记中:

<img src="@imageDataURL" />

但是没有图像显示只是没有图像的图标。

还有其他方法吗?

一个jpg文件有一个标准header。因此,即使使用不同的图像,我也希望 base64 的前几个字符相同。

当我将 jpg 转换为 base64 时,它以 "/9j/4AAQ"

开头

所以我认为你的数据不是 (valid/complete) jpg 文件。

我很好奇你指定了哪种图像格式而不是 jpeg 就像你在@Henk 回答下所说的那样它是 svg 因为它以 PHN2Z...

开头

这并不意味着您必须使用一些 svg 到 jpeg 转换器,只需适当调整数据 uri 类型即可:

imageDataURL = string.Format("data:image/svg+xml;base64,{0}", imagesrc);

Heres quick blazor playground which displays data uri for various image files