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

时间:2013-07-04 05:32:21

标签: c# .net winforms visual-studio

我在Panels中向一堆Form动态添加了一堆文件。

当我显示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语句你会怎么做?)

我们怎么做?我已经搜索了但是我没有找到任何有助于解释如何解决这个问题的方法。

2 个答案:

答案 0 :(得分:1)

至于b),我开始认为你无法通过扩展来区分文件的类型。这确实会使列表太长。对于图像文件,我允许自己只是提供成像引擎(在我的情况下是FreeImage)的性能“奢侈”,无论是什么,然后捕获异常。

答案 1 :(得分:0)

如何获取您可以阅读的缩略图,例如here

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

List<string> extensions  = ....;

if(extensions.Conatins(Path.GetExtension(_yourOpenFileDialog.FileName)))

修改

虽然为了检查你的文件是否是有效的图像,你可以检查它是否为已知的header,或者只是尝试这样的Image.FromFile(....).RawFormat,如果文件不是图像则会抛出异常,正如亚历山大建议