jjn*_*guy 10
大多数图片格式在图像的前几个字节中指定文件类型.您可以读取几个字节并查找正确的标头.
文件扩展名在技术上不包含有关图像的任何重要数据.它只是帮助操作系统找出用于打开它的程序.(但是,检查extn可能是最简单的方法,通常也是正确的.)
这没有经过测试,但它是这样的:
private string MimeType (string Filename)
{
string mime = "[default]";
string ext = GetExtension(Filename).ToLower();
Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (rk != null && rk.GetValue("Content Type") != null)
mime = rk.GetValue("Content Type").ToString();
return mime;
}
Run Code Online (Sandbox Code Playgroud)
(对不起,自从我完成注册表工作以来已经有一段时间了)
小智 5
我们这样做的方式(我现在无法找到确切的代码以便以下未经测试)是尝试将图像作为位图加载.如果失败,它不是图像
bool isImage;
try
{
Bitmap.FromFile(filePath);
isImage = true;
}
catch
{
isImage = false;
}
Run Code Online (Sandbox Code Playgroud)