none
Error en GDI+ (al grabar imagen) RRS feed

  • 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
    miércoles, 11 de febrero de 2015 18:17

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

    jueves, 12 de febrero de 2015 7:54

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

    jueves, 12 de febrero de 2015 7:54
  • 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


    jueves, 12 de febrero de 2015 8:25