C# 获取视频文件缩略图的方法

想用WPF实现获取视频文件缩略图的功能,显示到ListView中,但是搜索一下发现,大家都是采用FFmpeg的方式来截取的。我感觉非常不好。首先,FFmpeg非常的大,集成到软件中非常不方便。再者是个命令行的工具,执行后生成一个图片,然后再次读取,也挺烦躁,所以想是否有其它更好更简便的方法呢?

Windows 资源管理器本身不靠任何第三方的组件都可以获取视频文件的缩略图,能否调用系统的功能呢?最后研究发现,通过系统的API可以实现。

需要NuGet引用一个库WindowsAPICodePack-Shell 

然后轻松一句话搞定:

using Microsoft.WindowsAPICodePack.Shell;
using System.Drawing;

public static class ImageTool
{
  public static Bitmap GetThumbnailByPath(string filePath)
  {
       ShellFile shellFile = ShellFile.FromFilePath(filePath);
       Bitmap thumbnail = shellFile.Thumbnail.ExtraLargeBitmap;
       return thumbnail;
  }
}

非常简单,直接返回了一个Bitmap,然后你对bitmap想如何操作都行了。

猜你喜欢

转载自blog.csdn.net/wangmy1988/article/details/110630699