Principales respuestas
Error en GDI+ (al grabar imagen)

Pregunta
-
Hola, he visto que otros tuvieron este problema, pero no logro resolverlo. Tengo en mi base un campo Foto (nvarchar(MAX)). La primera vez que entro a mi formulario y selecciono una imagen, la misma se graba sin problemas. Luego, consulto desde mi aplicacion esa imagen, y la vuelco en un PictureBox. Pero al querer grabar nuevamente esa imagen, me aparece error en GDI+. ¿Alguna idea? Aqui mi codigo
Public Function ConvertImageToString(ByVal value As Image) As String Dim szResult As String If value Is Nothing Then Return "" Using ms As New MemoryStream value.Save(ms, ImageFormat.Jpeg) ms.Flush() ms.Position = 0 Dim buffer = ms.ToArray szResult = Convert.ToBase64String(buffer) End Using Return szResult End Function Public Function ConvertStringToImage(ByVal imageEncodedString As String) As Image Dim img As Image If String.IsNullOrEmpty(imageEncodedString) Then Return Nothing Dim buffer = Convert.FromBase64String(imageEncodedString) Dim mem As New MemoryStream(buffer) Using mem mem.Position = 0 img = Image.FromStream(mem) End Using Return img End Function
El error se da en la funcion ConvertImageToString, al hacer Value.Save
Respuestas
-
El error te lo da porque el archivo de imagen está en uso. La solución es cargar una copia de la propia imagen. Una solución puede ser que cargues la imagen con
Img = New Bitmap(Image.FromStream(mem))
Saludos, Javier J
- Propuesto como respuesta Karen MalagónModerator jueves, 12 de febrero de 2015 18:25
- Marcado como respuesta Karen MalagónModerator viernes, 13 de febrero de 2015 17:51
Todas las respuestas
-
El error te lo da porque el archivo de imagen está en uso. La solución es cargar una copia de la propia imagen. Una solución puede ser que cargues la imagen con
Img = New Bitmap(Image.FromStream(mem))
Saludos, Javier J
- Propuesto como respuesta Karen MalagónModerator jueves, 12 de febrero de 2015 18:25
- Marcado como respuesta Karen MalagónModerator viernes, 13 de febrero de 2015 17:51
-
deberías cambiar el tipo de dato de tu campo foto a binary and varbinary (el tipo image es obsoleto)
Cómo cargaste previamente tu objeto Image? --> el value
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Editado Sergio Parra jueves, 12 de febrero de 2015 8:29