Visual Basic.NET - Sobreescribir imagen

 
Vista:

Sobreescribir imagen

Publicado por Josema (5 intervenciones) el 17/05/2005 12:23:26
Hola a todos:

tengo en un formulario un picturebox en el cual al hacer clik se abre un cuadro de dialogo y le puedo añadir una imagen. Cuando guardo los datos del formulario, guardo la foto en la carpeta predeterminada de la aplicacion con un nombre distinto.

mi problema viene cuando quiero modificar esa imagen. al sobreescribir la imagen me dice que el archivo esta en uso y no la puedo eliminar (ni siquiera desde windows) hasta que cierro completamente la aplicacion.

¿¿¿como puedo hacer para actualizar la imagen???

espero haberme explicado bien un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sobreescribir imagen

Publicado por Edgar (1501 intervenciones) el 17/05/2005 14:34:43
Hola

Como estas abriendo la imagen para modificarla?? puedes mostrar un poco de codigo?

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobreescribir imagen

Publicado por Josema (5 intervenciones) el 18/05/2005 00:55:44
hola edgar aqui tienes el codigo que uso para abrir la foto :

Private Sub lnklabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnklabel1.LinkClicked
Dim editingFileName As String = ""
Dim saveAllowed As Boolean = True

' Displays the OpenFileDialog.
OpenFileDialog1.Filter = "Archivos de imagen(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|Todos los archivos (*.*)|*.*"
OpenFileDialog1.FilterIndex = 1
If (OpenFileDialog1.ShowDialog() = DialogResult.OK) Then
Dim userStream As System.IO.Stream
Try
' Opens the file stream for the file selected by the user.
userStream = OpenFileDialog1.OpenFile()
'Me.RtfBoxMain.LoadFile(userStream, _
' RichTextBoxStreamType.PlainText)
foto = OpenFileDialog1.FileName
ptbfoto.Image = Image.FromFile(foto, True)
ptbfoto.SizeMode = PictureBoxSizeMode.StretchImage
Finally
userStream.Close()
End Try

' Attempts to get the file name selected by the user.
' Failure means that the application does not have
' unrestricted permission to the file.
Try
editingFileName = OpenFileDialog1.FileName
Catch ex As Exception
If TypeOf ex Is System.Security.SecurityException Then
' The application does not have unrestricted permission
' to the file so the save feature will be disabled.
saveAllowed = False
Else
Throw ex
End If
End Try
End If

End Sub

y este es el k uso para guardar la foto en la carpeta de la aplicacion con un nombre determinado por los datos introducidos en el formulario:

If Trim(foto) <> "" Then
destinofoto = "C:\scouts\fotos\" + txtdnip.Text + txtdnim.Text + nombre + ".jpg"
ptbfoto.Image = Nothing
Try
''comentado porque da error tanto cuando no existe el archivo, como cuando si existe (dice que esta en uso)
'Kill("C:\scouts\fotos\" + txtdnip.Text + txtdnim.Text + nombre + ".jpg")
FileCopy(foto, destinofoto)
'' aqui da el error, me dice k el archivo esta en uso
Catch
MessageBox.Show("Error")
End Try
End If

a ver si se te ocurre como puedo hacer que sobreescriba la foto

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobreescribir imagen

Publicado por mati (68 intervenciones) el 23/05/2005 11:01:02
Hola antes de realizar la modificacion tienes que dejar libre el picture con esto se queda libre
Me.picture.Image.Dispose()
Me.picture.Image = Nothing

espero que te sirva un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobreescribir imagen

Publicado por josema (5 intervenciones) el 23/05/2005 16:43:52
hola mati:

he probado lo que me decias pero me sigue dando el mismo error, se te ocurre alguna otra cosa? igual es que no lo he colocado en el sitio correcto, en un post anterior tengo el codigo que he usado, ¿donde tengo que colocarlo?

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobreescribir imagen

Publicado por mati (68 intervenciones) el 24/05/2005 16:26:41
Hola yo lo hago y me sale pongo esto
If File.Exists(imagen_nueva) Then
'formuprincipal.BackgroundImage.Dispose()
'File.Copy(txtruta.Text, imagen_nueva, True)
Me.fondo.Image.Dispose()
Me.fondo.Image = Nothing
File.Copy(txtruta.Text, imagen_parametro, True)
end if

donde fondo es el picture e imagen parametro es la ruta de la imagen a copiar y txtruta tiene la ruta nueva a donde quiero copiar dixa imagen .
Un saludo espero que te sirva ya me contaras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobreescribir imagen

Publicado por Josema (5 intervenciones) el 27/05/2005 09:47:41
muchas gracias mati, ya he conseguido hacerlo funcionar, no sabes el peso que me has quitado de encima, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar