如何在C#中验证图像文件格式

时间:2010-01-13 00:56:42

标签: c# graphics image

有没有人知道脚本来验证给定图像的文件格式。目前我正在填充图像对象,查看它的高度,宽度和分辨率。我没有看到解释文件格式的此对象的任何特定属性。

我想查看jpg,AI,PSD,High Jes Jpg,Bitmap和Tiff。

这是我目前的剧本:

        protected bool IsValidImage(HttpPostedFileBase file, string fileName) {

        //verify that the image is no more than 648 wide and 648 pixels tall
        Image imgPhoto = Image.FromStream(file.InputStream);
        if (imgPhoto.Width > 648)
            return false;
        if (imgPhoto.Height > 648)
            return false;
        if (imgPhoto.HorizontalResolution != 72 || imgPhoto.VerticalResolution != 72)
            return false;
        return true;

    }

提前致谢

4 个答案:

答案 0 :(得分:6)

使用Image.RawFormat。结果是ImageFormat类的一个实例,可以与ImageFormat的静态属性进行比较。

有关详细信息,请参阅the ImageFormat class properties

答案 1 :(得分:3)

public bool validateImage(byte[] bytes)
{
  try 
{
 Stream stream = new MemoryStream(bytes);
 using(Image img = Image.FromStream(stream))
 {
   if (img.RawFormat.Equals(ImageFormat.Bmp) ||
       img.RawFormat.Equals(ImageFormat.Gif) ||
       img.RawFormat.Equals(ImageFormat.Jpeg) ||
       img.RawFormat.Equals(ImageFormat.Png))
     return true;
 }
 return false;
} 
catch
{
 return false;
}

}

答案 2 :(得分:1)

您可以访问Wotsit以找出在文件开头用作标记的神奇字节。单击“图形文件”以查看文件格式列表..

答案 3 :(得分:0)

怎么样:

bool isJpeg = imgPhoto.RawFormat.Equals(Imaging.ImageFormat.Jpeg);