如何在.NET中生成缩略图

问题描述 投票:0回答:1

尝试从包含 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”的类型初始值设定项引发异常。

c# asp.net-core
1个回答
0
投票

我找到了使用 Image Sharp 生成缩略图的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.