Jag ska försöka spara en bild ifrån en pictureBox men jag vet tji hur jag ska göra. Någon som vet hur man kan göra?
Det ska göras i VB.NET och jag har löst inläsningen till pictureboxen på följande sätt:
Private Sub open()
OpenFileDialog.Filter = "bmp Files |*.bmp"
OpenFileDialog.ShowDialog()
If OpenFileDialog.FileName <> "" Then
Try
Dim myBitmap As New Bitmap(OpenFileDialog.FileName)
Dim gr As Graphics = PictureBox.CreateGraphics
gr.DrawImage(myBitmap, 1, 1)
Catch
MsgBox("File not found.", , Me.Text)
End Try
End If
End Sub
Om du kan ändra din metod för att läsa av en Bitmap från fil till:
Private Sub open()
OpenFileDialog.Filter = "bmp Files |*.bmp"
OpenFileDialog.ShowDialog()
If OpenFileDialog.FileName <> "" Then
Try
PictureBox.Image = New Bitmap(OpenFileDialog.FileName)
Catch
MsgBox("File not found.", , Me.Text)
End Try
End If
End Sub
An unhandled exception of type 'System.NullReferenceException' occurred in Rit - Editor.exe
Additional information: Object reference not set to an instance of an object.
Hm, det verkar som detta felmedelande endast kommer då jag ritar i pictureBoxen och vill spara. För om jag laddar in en fil till pictureboxen och sparar den med annat namn så funkar det!
Private Sub Draw(ByVal e As System.Windows.Forms.MouseEventArgs)
Dim g As Graphics = PictureBox.CreateGraphics
Dim Loc As Point = New Point(Mouse_X, Mouse_Y)
If (WhatObjekt = "Rectangle") Then
Dim sz As Size = New Size(e.X - Mouse_X, e.Y - Mouse_Y)
Dim rect As Rectangle = New Rectangle(Loc, sz)
If (MenuFill.Checked) Then
g.FillRectangle(myBrush, rect)
Else
g.DrawRectangle(pen, rect)
End If
Save funktionen:
Public Sub Save()
SaveFileDialog.Filter = "bmp Files |*.bmp"
'SaveFileDialog.InitialDirectory = SaveFileDialog.GetCurrentDirectory
SaveFileDialog.ShowDialog()
'if Cancel button is not selected, load file
If SaveFileDialog.FileName <> "" Then
'Try
Dim myBitmap As New Bitmap(PictureBox.Image)
myBitmap.Save(SaveFileDialog.FileName)
'Catch
' MsgBox("Some problem, retry!", , Me.Text)
'End Try
End If
End Sub
Problemet är att när du väljer att "bara" rita på "pictureboxen" så har du inte instansiserat något objekt i egenskapen .Image. Det sker dock om du laddar in en bild från disk osv...