如何获取所选文件的缩略图并在PictureBox中显示

本文关键字:略图 PictureBox 显示 文件 何获取 获取 | 更新日期: 2023-09-27 18:21:00

我正在向Form中的一组Panels动态添加一组文件。

当我显示OpenFileDialog时,我允许用户选择一个文件。当用户选择一个文件时,我想:

a) If the file is an image, display a thumbnail of that image in the Panel, and
b) If the file is _not_ an image, display its File Icon in the Panel.

我也很难理解如何区分Image文件和normal file(而不是对所有不同的图像类型执行大量的IF语句。你会这样做吗?)

我们该怎么做?我已经搜索过了,但没有找到任何有助于解释如何处理这一问题的东西。

如何获取所选文件的缩略图并在PictureBox中显示

对于b),我认为不能仅仅通过扩展名来区分文件的类型。这确实会使清单太长。有了图像文件,我可以让自己享受性能"奢侈",只需为图像引擎(在我的情况下是FreeImage)提供任何信息,然后捕捉异常。

如何获得缩略图,例如可以在这里阅读

为了检查文件扩展名,您只需创建图像文件扩展名的List<string>,并编写以下内容:

List<string> extensions  = ....;
if(extensions.Conatins(Path.GetExtension(_yourOpenFileDialog.FileName)))

编辑

虽然要检查你的文件是否是有效的图像,你可以检查它是否是已知的阅读器,或者只是尝试类似于Image.FromFile(....).RawFormat的东西,如果文件不是图像,它会抛出异常,就像Alexander建议的