画像ファイルの拡張子が書き換えられたときの検出

 

画像データの拡張子が書き換えられたときにエラーを吐き出します。

 

以下サンプル

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

'画像ファイルを読み込む
Dim imgPath As String = "C:\test.jpg"
Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(imgPath)

Dim fileExtension As String = System.IO.Path.GetExtension(imgPath)

'イメージのファイル形式を調べる
If fileExtension = ".gif" Then
If img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif) Then
'--ここにエラー処理を書く(拡張子gifでデータのフォーマットが違うとき)
EndIf
ElseIf
fileExtension = ".jpg" Then
If img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg) Then
'--ここにエラー処理を書く(拡張子Jpegでデータのフォーマットが違うとき)

End If
Else
'--ここにエラー処理を書く(今回はjpg,gifのみの検出の為それ以外)
EndIf

'画像リソースの開放
img.Dispose()
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

拡張子は以下の処理で取得できます。
Dim fileExtension As String = System.IO.Path.GetExtension(imgPath)
<結果>
fileExtension : ".jpg" や ".gif"などドット付きで取得します

画像データは以下の処理で取得できます

'画像データの読み込み
Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(imgPath)

'画像フォーマットとイコールか判別
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg)

その他ビットマップやpng画像も判別できるようです。

以上