关于Graphics.FromImage的问题
理理还是乱 2017-07-27 11:33:29 本人是刚人门vb.net的小白,在做按钮控制图形缩放的实验遇到了一些问题。我想实现的效果是按下按钮时图片缩放一个等级,并且原图随即消失。源代码如下,已经测试过可以实现想要的效果。
Public Class Form1
Dim i As Integer = 0
Dim map As Bitmap = New Bitmap("E:\123.jpg")
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim e_map As Bitmap = New Bitmap(Me.Width, Me.Height)
Dim gg As Graphics = Graphics.FromImage(e_map)
Dim g As Graphics = Me.CreateGraphics
gg.Clear(Color.White)
gg.DrawImage(map, 0, 0, 600 - i, 400 - i)
g.DrawImage(e_map, 0, 0)
i = i + 5
g.Dispose()
gg.Dispose()
End Sub
End Class
我的问题是,为什么我把gg.Clear(Color.White)放在了第一的位置,它依然能够清除上一张图片?明明上一张图片已经被我用 Dispose()释放掉了。
还有
Dim e_map As Bitmap = New Bitmap(Me.Width, Me.Height)
为什么这句必须放在函数体内,如果放在函数外,就会出现非常奇怪的现象:g变成了一个很小的正方形,按照我设置的它应该等同于整个窗体的大小。