在 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
我正在使用 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