Hola a todos!
Me gustaria saber cómo guardais vosotros una imagen con un SaveFileDialog(). Yo lo hago de esta forma al evento click de un botón:
'cuadro de dialogo guardar
Dim savefd As New SaveFileDialog()
savefd.FileName = ruta
savefd.InitialDirectory = value & "\imagenes"
savefd.Filter = "(*.jpg)|*.jpg|(*.gif)|*.gif|(*.bmp)|*.bmp"
savefd.FilterIndex = 1
savefd.ValidateNames = True
savefd.ShowDialog()
' Si el nombre de archivo no es una cadena vacía, abrirlo para guardarlo.
If savefd.FileName <> "" Then
' Guardar la imagen a través de FileStream creado con el método OpenFile.
Dim fs As System.IO.FileStream = CType(savefd.OpenFile(), System.IO.FileStream)
' Guardar la imagen en el formato ImageFormat adecuado según
' el tipo de archivo seleccionado en el cuadro de diálogo.
' OBSERVE que la propiedad FilterIndex tiene base uno.
Select Case savefd.FilterIndex
Case 1
Me.cmdguardar.Image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg)
Case 2
Me.cmdguardar.Image.Save(fs, ImageFormat.Gif)
Case 3
Me.cmdguardar.Image.Save(fs, ImageFormat.Bmp)
End Select
fs.Close()
El cuadro de diálogo me lo muestra bien, pero no me guarda fisicamente el archivo en el disco duro, y si me lo hace, está dañado y no puedo abrir la imagen. También me suele decir en el case 1:
"Referencia a objeto no establecida como instancia de un objeto".
Me gustaria saber cómo hacéis vosotros para guardar una imagen con un SaveFileDialog().
Gracias.