Проверить изображение из файла в C # - PullRequest
49 голосов
/ 17 октября 2008

Я загружаю изображение из файла, и я хочу знать, как проверить изображение, прежде чем оно будет полностью прочитано из файла.

string filePath = "image.jpg";
Image newImage = Image.FromFile(filePath);

Проблема возникает, когда image.jpg на самом деле не JPG. Например, если я создам пустой текстовый файл и переименую его в image.jpg, при загрузке image.jpg будет выдано исключение OutOfMemory.

Я ищу функцию, которая будет проверять изображение с учетом потока или пути к файлу изображения.

Пример прототипа функции

bool IsValidImage(string fileName);
bool IsValidImage(Stream imageStream);

Ответы [ 12 ]

0 голосов
/ 17 октября 2008

Вы можете прочитать первые несколько байтов потока и сравнить их с байтами магического заголовка для JPEG.

0 голосов
/ 17 октября 2008

Я бы создал такой метод, как:

Image openImage(string filename);

, в котором я обрабатываю исключение. Если возвращаемое значение равно NULL, существует недопустимое имя / тип файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...