在 C# 中从内存流(视频)创建缩略图的最佳方法或库是什么

本文关键字:略图 最佳 方法 是什么 创建 内存 视频 | 更新日期: 2023-09-27 18:37:15

我必须创建多个缩略图并以 c# 保存在 Amazon s3 上。我没有找到只能从源文件从内存流创建缩略图的库。但是不能有文件源,我只有上传的流,我不想在本地保存文件。

感谢您的帮助!

在 C# 中从内存流(视频)创建缩略图的最佳方法或库是什么

简单的 c# 代码可以为你做到这一点。您可以从字节数组创建缩略图。首先通过以下代码将内存流对象转换为字节数组

byte[] bytes = memoryStream.ToArray();

然后你可以使用以下方法

public byte[] MakeThumbnail(byte[] myImage, int thumbWidth, int thumbHeight)
{
    using (MemoryStream ms = new MemoryStream())
    using (Image thumbnail = Image.FromStream(new MemoryStream(myImage)).GetThumbnailImage(thumbWidth, thumbHeight, null, new IntPtr()))
    {
        thumbnail.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
        return ms.ToArray();
    }
}

我没有找到只能从内存流创建缩略图的库 源文件

真?因为我不需要库 - 我可以用标准 C# 做到这一点。

System.Drawing.Bitmap 有一个接受流的构造函数。

但不能有文件源,

实际上你可以 - 它被称为临时文件,并且在 .NET(和 Windows)中有一个完整的机制。真。

但这不是必需的。阅读手册,创建一个位图(通过将字节数组打包到 MemoryStream 中),它应该可以工作。