Вы, очевидно, думаете, что это делает что-то, чего нет:
safecopy = mainpic
Все, что делает, - устанавливает safecopy
для ссылки на тот же объект Bitmap
, что и mainpic
. Там нет копии. Следующая строка располагает этот объект Bitmap
, поэтому, конечно, вы не сможете его использовать. Избавьтесь от второй переменной. Просто создайте объект, сохраните его и затем удалите его:
Using pic As New Bitmap(ofdUploadPhotoMain.FileName)
pic.Save(IO.Path.Combine(path, "MainPic", fullname + ".png"), Imaging.ImageFormat.Png)
End Using
РЕДАКТИРОВАТЬ:
Я только что протестировал этот код и получил общую ошибку c GDI +:
Using ofd As New OpenFileDialog
If ofd.ShowDialog() = DialogResult.OK Then
Dim fullName = String.Concat("LastName", "FirstName", "MiddleName")
Dim folderPath = Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments,
"RMS\Photos\MainPic",
fullName & ".png")
Dim picture = Image.FromFile(ofd.FileName)
picture.Save(filePath)
PictureBox1.Image = picture
End If
End Using
В этом случае папка, указанная в пути, не существует. Я изменил это на это:
Using ofd As New OpenFileDialog
If ofd.ShowDialog() = DialogResult.OK Then
Dim fullName = String.Concat("LastName", "FirstName", "MiddleName")
Dim folderPath = Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments,
"RMS\Photos\MainPic")
Directory.CreateDirectory(folderPath)
Dim filePath = Path.Combine(folderPath, fullName & ".png")
Dim picture = Image.FromFile(ofd.FileName)
picture.Save(filePath)
PictureBox1.Image = picture
End If
End Using
, и изображение было сохранено и отображено как ожидалось. Вопрос, вероятно, то же самое для вас. Обратите внимание, как я создал путь. Вы должны сделать то же самое.