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"; }