画像の幅と高さを取得する

画像ファイルの幅と高さを取得する方法を、手元の資料ではどうしてもわからなかったので、VB.NETのメーリングリストvbvbvb.netで聞いてみました。以下のようなコードで取得できるそうですが…

    ' 画像の幅と高さの取得その1
        Dim ImgWidth , ImgHeight As Integer
        Image.FromFile(imageFileName).Width
        Image.FromFile(imageFileName).Height

上のコードでは、画像がロックされてしまうらしいです。参考サイト:309482 - [PRB] PictureBox の Image プロパティにファイルを設定するとイメージ ファイルがロックされる

ロックせずにファイルの高さと幅を取得するには、以下のようにするそうです。

    ' 画像の幅と高さの取得その2
        Dim imagew , imageh As Integer
        Dim fs As System.IO.FileStream
        ' Specify a valid picture file path on your computer.
        fs = New System.IO.FileStream(ImageFileName, IO.FileMode.Open, IO.FileAccess.Read)
        imagew = System.Drawing.Image.FromStream(fs).Width
        imageh = System.Drawing.Image.FromStream(fs).Height
        fs.Close()

もどる