|
分類:[.NET 全般]
お世話になっております。
画像の拡大・縮小に対しての質問です。
開発環境は以下になります。
WindowsVista64Bit
VB.NET2008
ある画像を表示し、それに対して拡大・縮小を行いサイズによってスクロールバーをつけたいと思っております。
スクロールはパネルを使い、自動で表示するようにしています。
大きいファイルを表示したり、拡大するとスクロールバーは表示されるのですが、
画像がしっかりと表示されません。
以下がソースになります。
もし、何かお気づきの点がありましたらご教授お願い致します。
'// ファイル読み込み
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'// ファイル名読み込み処理割愛
TestBitmap = New Bitmap(ofd.FileName)
g_Draw = PictureBox1.CreateGraphics
Rect = New RectangleF(0, 0, TestBitmap.Width, TestBitmap.Height)
g_Draw.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
PictureBox1.Refresh()
g_Draw.DrawImage(TestBitmap, Rect)
'// 倍率
ExtValue = 100
PictureBox1.Width = TestBitmap.Width
PictureBox1.Height = TestBitmap.Height
End sub
'// 拡大処理
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ExtValue += 10
Ratio = ExtValue / 100
Rect = New RectangleF(0, 0, TestBitmap.Width * Ratio, TestBitmap.Height * Ratio)
PictureBox1.Size = New Size(TestBitmap.Width * Ratio, TestBitmap.Height * Ratio)
PictureBox1.Refresh()
g_Draw.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
g_Draw.DrawImage(TestBitmap, Rect)
End Sub
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
If Not TestBitmap Is Nothing Then
g_Draw.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
g_Draw.DrawImage(TestBitmap, Rect)
End If
End Sub
|