none
problema al convertir de c# a vb.net para guardar una foto RRS feed

  • Pregunta

  • buenas tardes 

    amigos del foro tengo un problema de trato de convertir un codigo de net c# a vb.net

    pero me arroja el sisguiente error

    codigo original

       public static byte[] ImageToByteArray(Image imageIn)
            {
                MemoryStream ms = new MemoryStream();
                imageIn.Save(ms, ImageFormat.Jpeg);
                return ms.ToArray();
            }
    

    convertido a vb.net


     Public Shared Byte() Function ImageToByteArray(imageIn As Image)
                Dim ms As New MemoryStream()
                imageIn.Save(ms, ImageFormat.Jpeg)
                Return ms.ToArray()
    
        End Function

    error del codigo al convertirlo

    al llamarlo del formulario tambien genera error 

    error 

    dice no es un miembro de HelperImage

     HelperImage.ImageToByteArray

    miércoles, 20 de septiembre de 2017 23:47

Respuestas

  • Deleted
    jueves, 21 de septiembre de 2017 0:15
  • "djnilo" escribió:

    > me aperece este otro error en el formulario
    >
    > Function HelperImage.ImageToByteArray(imageIn As Image) As Byte()
    >
    > El valor de tipo 'Byte()' no se puede convertir en 'Byte'.

    Hola:

    ¿Conoces la diferencia entre un valor Byte y una matriz de valores Byte (Byte())?

    Un valor Byte es un número entero de 8 bits sin signo dentro del intervalo de valores existentes entre 0 y 255:

        Dim valorByte As Byte = 146

    Y una matriz de bytes es un array de varios valores Byte:

       Dim matrizBytes AS Byte() = {23, 143, 1, 255, 0, 29, 128, 25}

    Fíjate bien en los paréntesis de apertura y cierre que aparecen en la declaración de la matriz de valores Byte, que es cómo se declara una matriz o array en Visual Basic.

    Si la función ImageToByteArray devuelve una matriz de bytes, ésta no se la puedes asignar a un valor declarado como Byte (sin paréntesis), de ahí el mensaje de error que estás obteniendo.

    >  objentidade.foto = HelperImage.ImageToByteArray(PicFoto.Image)

    Para dejar de obtener ese error, la propiedad 'foto' del objeto declarado con el nombre 'objentidade' tiene que estar declarada como una matriz de valores Byte (con los paréntesis de apertura y cierre), es decir, dicha propiedad tiene que estar declarada como indico a continuación a modo de ejemplo:

    Public Class NombreClase
    
        Public Property foto As Byte()
    
    End Class

    Mientras que no sea así, NO PUEDES LLAMAR a la función ImageToByteArray sin dejar de obtener el error mencionado.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    viernes, 22 de septiembre de 2017 6:18
    Moderador

Todas las respuestas

  • gracias por responder miqui quilmes pero me aperece este otro error 

    en el formulario 

    jueves, 21 de septiembre de 2017 20:24
  • "djnilo" escribió:

    > me aperece este otro error en el formulario
    >
    > Function HelperImage.ImageToByteArray(imageIn As Image) As Byte()
    >
    > El valor de tipo 'Byte()' no se puede convertir en 'Byte'.

    Hola:

    ¿Conoces la diferencia entre un valor Byte y una matriz de valores Byte (Byte())?

    Un valor Byte es un número entero de 8 bits sin signo dentro del intervalo de valores existentes entre 0 y 255:

        Dim valorByte As Byte = 146

    Y una matriz de bytes es un array de varios valores Byte:

       Dim matrizBytes AS Byte() = {23, 143, 1, 255, 0, 29, 128, 25}

    Fíjate bien en los paréntesis de apertura y cierre que aparecen en la declaración de la matriz de valores Byte, que es cómo se declara una matriz o array en Visual Basic.

    Si la función ImageToByteArray devuelve una matriz de bytes, ésta no se la puedes asignar a un valor declarado como Byte (sin paréntesis), de ahí el mensaje de error que estás obteniendo.

    >  objentidade.foto = HelperImage.ImageToByteArray(PicFoto.Image)

    Para dejar de obtener ese error, la propiedad 'foto' del objeto declarado con el nombre 'objentidade' tiene que estar declarada como una matriz de valores Byte (con los paréntesis de apertura y cierre), es decir, dicha propiedad tiene que estar declarada como indico a continuación a modo de ejemplo:

    Public Class NombreClase
    
        Public Property foto As Byte()
    
    End Class

    Mientras que no sea así, NO PUEDES LLAMAR a la función ImageToByteArray sin dejar de obtener el error mencionado.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    viernes, 22 de septiembre de 2017 6:18
    Moderador
  • "djnilo" escribió:

    > me aperece este otro error en el formulario
    >
    > Function HelperImage.ImageToByteArray(imageIn As Image) As Byte()
    >
    > El valor de tipo 'Byte()' no se puede convertir en 'Byte'.

    Hola:

    ¿Conoces la diferencia entre un valor Byte y una matriz de valores Byte (Byte())?

    Un valor Byte es un número entero de 8 bits sin signo dentro del intervalo de valores existentes entre 0 y 255:

        Dim valorByte As Byte = 146

    Y una matriz de bytes es un array de varios valores Byte:

       Dim matrizBytes AS Byte() = {23, 143, 1, 255, 0, 29, 128, 25}

    Fíjate bien en los paréntesis de apertura y cierre que aparecen en la declaración de la matriz de valores Byte, que es cómo se declara una matriz o array en Visual Basic.

    Si la función ImageToByteArray devuelve una matriz de bytes, ésta no se la puedes asignar a un valor declarado como Byte (sin paréntesis), de ahí el mensaje de error que estás obteniendo.

    >  objentidade.foto = HelperImage.ImageToByteArray(PicFoto.Image)

    Para dejar de obtener ese error, la propiedad 'foto' del objeto declarado con el nombre 'objentidade' tiene que estar declarada como una matriz de valores Byte (con los paréntesis de apertura y cierre), es decir, dicha propiedad tiene que estar declarada como indico a continuación a modo de ejemplo:

    Public Class NombreClase
    
        Public Property foto As Byte()
    
    End Class

    Mientras que no sea así, NO PUEDES LLAMAR a la función ImageToByteArray sin dejar de obtener el error mencionado.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    muchas gracias por la clase no me di cuenta de eso se agradece Enrique M. Montejo
    viernes, 22 de septiembre de 2017 12:56
  • muchas gracias por tu ayuda miqui quilmes
    viernes, 22 de septiembre de 2017 16:39