尝试从包含 jpg 或 png 扩展图像的字节数组生成缩略图,然后将其显示在 Razor 页面上。这是我目前拥有的。字节数组来自一个对象类,其中包含一个名为 FileContent
的字段任何有关我做错的事情和后续步骤的帮助将不胜感激
我目前的做法是获取图像的字节数组,将其大小调整为缩略图,然后将其另存为另一个数组,最后使用字节数组转换尝试在前端加载图像,但尚未实现工作了
剃刀页面
<QuickGrid Items="@BlobNames">
<TemplateColumn Title="Thumbnail">
@{
var currItem = (context as DocumentObject);
byte[] thumbnail = GenerateThumbnail(currItem.FileContent);
var thumbnailUrl = $"data:image/jpeg;base64,{Convert.ToBase64String(thumbnail)}";
}
</QuickGrid>
后端
protected byte[] GenerateThumbnail(byte[] imageStream)
{
using (MemoryStream ms = new MemoryStream(imageStream))
{
using (Image originalImage = Image.FromStream(ms))
{
using(Image thumbnail = originalImage.GetThumbnailImage(64,64,()=>false, IntPtr.Zero))
{
using(MemoryStream thumbnailStream = new MemoryStream())
{
thumbnail.Save(thumbnailStream, originalImage.RawFormat);
return thumbnailStream.ToArray();
}
}
}
}
}
当我运行该程序时,出现以下错误: 渲染组件未处理的异常:“System.Drawing.DrawingCom”的类型初始值设定项引发异常。 System.TypeInitializationException:“System.Drawing.DrawingCom”的类型初始值设定项引发异常。
我找到了使用 Image Sharp 生成缩略图的解决方案。