开发者

How to validate image file format in C#

开发者 https://www.devze.com 2022-12-16 09:06 出处:网络
Does anyone know the script to validate what the file format is for a given image.Currently i am populating an image object, looking at it\'s height, width, and resolution.I don\'t see any specific pr

Does anyone know the script to validate what the file format is for a given image. Currently i am populating an image object, looking at it's height, width, and resolution. I don't see any specific properties off of this object that explains the file format.

I would like to check for jpg, AI, PSD, High Jes Jpg, Bitmap, and Tiff.

here is my current script:

        protect开发者_JAVA技巧ed 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;

    }

Thanks in advance


Use Image.RawFormat. The result is an instance of the ImageFormat class which can be compared against the static properties of ImageFormat.

See the ImageFormat class properties for more details.


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

}


You can visit Wotsit to find out the magic bytes used as a marker in the beginning of the file. Click on the 'Graphics File' to see the list of file formats..


What about:

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

精彩评论

暂无评论...
验证码 换一张
取 消