Как проверить формат файла изображения в C # - PullRequest
3 голосов
/ 13 января 2010

Кто-нибудь знает скрипт для проверки формата файла для данного изображения. В настоящее время я заполняю объект изображения, глядя на его высоту, ширину и разрешение. Я не вижу особых свойств этого объекта, которые объясняют формат файла.

Я хотел бы проверить наличие jpg, AI, PSD, высокого Jes jpg, растрового изображения и 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 ]

6 голосов
/ 13 января 2010

Используйте Image.RawFormat. Результатом является экземпляр класса ImageFormat, который можно сравнить со статическими свойствами ImageFormat.

Подробнее см. свойства класса ImageFormat .

3 голосов
/ 10 июля 2012
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;
}

}

1 голос
/ 13 января 2010

Вы можете посетить Wotsit , чтобы узнать магические байты, используемые в качестве маркера в начале файла. Нажмите на «Графический файл», чтобы увидеть список форматов файлов.

0 голосов
/ 13 января 2010

А как же:

bool isJpeg = imgPhoto.RawFormat.Equals(Imaging.ImageFormat.Jpeg);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...