VB.NETって使い始めるととっても便利なメソッドがいっぱい!
VB.NETで画像表示するときの記述をメモってます。

画像ファイルの表示

ファイルから表示

一番簡単にファイルのイメージを表示するには

<ピクチャボックス>.Image = Image.FromFile(<ファイル名>)

ファイルをロックしないように表示するには

Public Sub FileToImage(ByRef dstObject_ As PictureBox, ByVal fileName_ As String)
If Not dstObject_.Image Is Nothing Then
dstObject_.Image.Dispose() End If

Using fs As New System.IO.FileStream(fileName_, System.IO.FileMode.Open, IO.FileAccess.Read)
dstObject_.Image = Image.FromStream(fs)
End Using
End Sub

画像をマスクして表示

背景画像の上に文字画像を重ね合わせ

Public Sub AndImage(ByRef srcObject_ As PictureBox, ByRef dstObject_ As PictureBox)
Dim bmp As Bitmap = New Bitmap(srcObject_.Image)
'透過色に黒を指定
bmp.MakeTransparent(System.Drawing.Color.Black)

Using g As Graphics = dstObject_.CreateGraphics()
g.DrawImage(bmp, 0, 0)
End Using

End Sub

画像サイズ変更

Public Sub ChangeImageSize(ByRef srcObject_ As PictureBox, ByRef dstObject_ As PictureBox)
Dim bmp As Bitmap = New Bitmap(srcObject_.Image)

Using g As Graphics = dstObject_.CreateGraphics()
'画像を2倍して表示
g.DrawImage(bmp, 0, 0, bmp.Width * 2, bmp.Height * 2)
End Using

End Sub

画像の一部取得

画像の一部分を表示

Public Sub GetRectImage(ByRef srcObject_ As PictureBox, ByRef dstObject_ As PictureBox)
Dim bmp As Bitmap = New Bitmap(srcObject_.Image)
Dim rect As Rectangle = New Rectangle(0, 0, 46, 46)
Dim bmp2 As Bitmap = New Bitmap(rect.Width, rect.Height)
'画像の一部分を表示
Using g As Graphics = Graphics.FromImage(bmp2)
g.DrawImage(bmp, 0, 0, rect, GraphicsUnit.Pixel)
End Using

End Sub

おまけ

※Graphicsオブジェクトは描画対象のオブジェクトに対して作成する

再描画しても消えないように表示

画像の一部分をマスクして背景に重ねて表示

Public Sub GetRectImage(ByRef srcObject_ As PictureBox, ByRef dstObject_ As PictureBox)
Dim bmp As Bitmap = New Bitmap(srcObject_.Image)
'取得したい一部分のRectangleを作成
Dim rect As Rectangle = New Rectangle(0, 0, 46, 46)
Dim bmp2 As Bitmap = New Bitmap(rect.Width, rect.Height)
'透過色に黒を指定
bmp.MakeTransparent(System.Drawing.Color.Black)
'画像の一部分を表示
Using g As Graphics = Graphics.FromImage(bmp2)
g.DrawImage(bmp, 0, 0, rect, GraphicsUnit.Pixel)
End Using
'画像を2倍して表示
Using g As Graphics = dstObject_.CreateGraphics()
g.DrawImage(bmp2, 0, 0, bmp2.Width * 2, bmp2.Height * 2)
End Using

End Sub

ページトップへ