Ich stelle einen Ausschnitt aus einem großen Bild in einer Picturebox dar und zeichne einige Linien darüber. Diesen Ausschnitt verschiebe ich mit der Maus. Dies führt früher oder später zu Speicherproblemen:
Nun wäre es eigentlich logisch, am Ende dieser Routine noch DisplayMap.Dispose() hinzuzufügen, aber dann funktioniert sie nicht mehr.
Was kann ich tun, um den Speicherfehler zu vermeiden?
Quellcode
- Sub Display()
- Dim DisplayMap As New Bitmap(PictureBox.Width, PictureBox.Height)
- Using gr = Graphics.FromImage(DisplayMap)
- gr.DrawImage(OriginalImage, -OffsetX, -OffsetY, OriginalImage.Width, OriginalImage.Height)
- gr.DrawLine(Pens.Red, 0, 0, 100, 200)
- gr.Flush()
- End Using
- PictureBox.Image = DisplayMap
- End Sub
Nun wäre es eigentlich logisch, am Ende dieser Routine noch DisplayMap.Dispose() hinzuzufügen, aber dann funktioniert sie nicht mehr.
Was kann ich tun, um den Speicherfehler zu vermeiden?