私の場合は、画像として処理できれば画像だと考えています。
エラーが出たら処理をやめる。エラーが出なければ処理を継続する
という風にすることが私の場合は多いです。
こちらの質問にも書きましたが
イメージとしては以下のような感じで判定します。
C#
1using System;
2using System.Drawing;
3
4class Program
5{
6 static void Main(string[] args)
7 {
8 string[] paths = System.IO.Directory.GetFiles("images/");
9
10 foreach (string path in paths)
11 {
12 try
13 {
14 Bitmap bmp = new Bitmap(path);
15 Console.WriteLine($"*{path}は画像です。");
16 }
17 catch
18 {
19 Console.WriteLine($" {path}は画像ではありません。");
20 }
21 }
22
23 Console.ReadKey();
24 }
25}
*images/00.jpgは画像です。
images/01.gifは画像ではありません。
*images/02.gifは画像です。
images/03.pngは画像ではありません。
images/04.psdは画像ではありません。
images/05.psdは画像ではありません。
images/06.bmpは画像ではありません。
*images/07.bmpは画像です。
*images/08.jpgは画像です。
*images/09.jpgは画像です。
*images/10.pngは画像です。
*images/11.jpgは画像です。