C# 获取Image图片格式和图片后缀

private ImageFormat GetImageFormat(FileStream file, out string format)
{
    byte[] sb = new byte[2];  //这次读取的就是直接0-1的位置长度了.
    file.Read(sb, 0, sb.Length);
    //根据文件头判断
    string strFlag = sb[0].ToString() + sb[1].ToString();
    //察看格式类型
    switch (strFlag)
    {
        //JPG格式
        case "255216":
            format = ".jpg";
            return ImageFormat.Jpeg;
        //GIF格式
        case "7173":
            format = ".gif";
            return ImageFormat.Gif;
        //BMP格式
        case "6677":
            format = ".bmp";
            return ImageFormat.Bmp;
        //PNG格式
        case "13780":
            format = ".png";
            return ImageFormat.Png;
        //其他格式
        default:
            format = string.Empty;
            return null;
    }
}

private ImageFormat GetImageFormat(Image _img, out string format)
{
    if (_img.RawFormat.Equals(ImageFormat.Jpeg))
    {
        format = ".jpg";
        return ImageFormat.Jpeg;
    }
    if (_img.RawFormat.Equals(ImageFormat.Gif))
    {
        format = ".gif";
        return ImageFormat.Gif;
    }
    if (_img.RawFormat.Equals(ImageFormat.Png))
    {
        format = ".png";
        return ImageFormat.Png;
    }
    if (_img.RawFormat.Equals(ImageFormat.Bmp))
    {
        format = ".bmp";
        return ImageFormat.Bmp;
    }
    format = string.Empty;
    return null;
}

public string GetMimeType(Image image)
{
    ImageCodecInfo[] imageCodec = ImageCodecInfo.GetImageDecoders();
    foreach (ImageCodecInfo item in imageCodec)
    {
        if (item.FormatID == image.RawFormat.Guid)
        {
            // 返回 样式为 image/png,image/gif  等样式字符串
            return item.MimeType;
        }
    }
    return "unknown";
}