DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

Imageのファイル形式を調べる

画像ファイルを読み込み、Imageオブジェクトを作成する」で紹介したような方法で画像ファイルをImageオブジェクトとして読み込んだときに、そのImageオブジェクトからファイル形式を調べる方法を紹介します。

それにはRawFormatプロパティを使用し、その値がImageFormatクラスにある静的プロパティのメンバと一致するかを調べます。例えば、あるImageオブジェクトがJPEGか調べるならば、RawFormatプロパティがImageFormat.Jpegプロパティと同じかをEqualsメソッドを使って調べます。

以下に、Imageオブジェクトのファイル形式を調べて表示する例を示します。

VB.NET
コードを隠すコードを選択
'画像ファイルを読み込む
Dim imgPath As String = "C:\test.jpg"
Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(imgPath)

'イメージのファイル形式を調べる
If img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp) Then
    Console.WriteLine("ビットマップ (BMP) イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif) Then
    Console.WriteLine("GIF (Graphics Interchange Format) イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg) Then
    Console.WriteLine("JPEG (Joint Photographic Experts Group) イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png) Then
    Console.WriteLine("W3C PNG (Portable Network Graphics) イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Exif) Then
    Console.WriteLine("Exif (Exchangeable Image File) 形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff) Then
    Console.WriteLine("TIFF (Tagged Image File Format) イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon) Then
    Console.WriteLine("Windows アイコン イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf) Then
    Console.WriteLine("拡張メタファイル (EMF) イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf) Then
    Console.WriteLine("Windows メタファイル (WMF) イメージ形式です")
ElseIf img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.MemoryBmp) Then
    Console.WriteLine("メモリ ビットマップ イメージ形式です")
End If

img.Dispose()
C#
コードを隠すコードを選択
//画像ファイルを読み込む
string imgPath = @"C:\test.jpg";
System.Drawing.Image img = System.Drawing.Image.FromFile(imgPath);

//イメージのファイル形式を調べる
if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
{
    Console.WriteLine("ビットマップ (BMP) イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
{
    Console.WriteLine("GIF (Graphics Interchange Format) イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
{
    Console.WriteLine("JPEG (Joint Photographic Experts Group) イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
{
    Console.WriteLine("W3C PNG (Portable Network Graphics) イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Exif))
{
    Console.WriteLine("Exif (Exchangeable Image File) 形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff))
{
    Console.WriteLine("TIFF (Tagged Image File Format) イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon))
{
    Console.WriteLine("Windows アイコン イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf))
{
    Console.WriteLine("拡張メタファイル (EMF) イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf))
{
    Console.WriteLine("Windows メタファイル (WMF) イメージ形式です");
}
else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.MemoryBmp))
{
    Console.WriteLine("メモリ ビットマップ イメージ形式です");
}

img.Dispose();

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • Windows Vista以降でUACが有効になっていると、ファイルへの書き込みに失敗する可能性があります。詳しくは、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。