确定文件是否为图标

the*_*ghn 1 c#

我正在从图像文件中读取OpenImageFileDialog,它接受.ico和位图文件.有了图标,我需要创建一个Icon对象并将其转换为位图.

如何判断文件是否实际上是一个图标?只是检查.ico扩展名似乎不可靠.

Joe*_*oey 6

好吧,我没有看到许多伪装成的Bitmaps,.ico反之亦然.使用扩展来确定这些事情实际上是最常见的方式.

如果你想要聪明,你可以尝试将图像打开为Bitmap,如果失败,请尝试它是一个图标,如果失败则放弃.

然而,如果您支持的格式数量增加,这种聪明感很快就会变得很痛苦.你可以尝试窥视文件并在这种情况下从头部确定文件格式,这可能比让解析器失败更快(也避免了异常驱动的编程).