none
¿Como convertir imagen a byte[]? RRS feed

Respuestas

  • pues muy facil, en la web hay muchos recursos incluso aqui en este foro,

     Public Function Image2Bytes(ByVal img As Image) As Byte()
            Dim sTemp As String = Path.GetTempFileName()
            Dim fs As New FileStream(sTemp, FileMode.OpenOrCreate, FileAccess.ReadWrite)
            img.Save(fs, System.Drawing.Imaging.ImageFormat.Png)
            ' Cerrarlo y volverlo a abrir
            ' o posicionarlo en el primer byte
            'fs.Close()
            'fs = New FileStream(sTemp, FileMode.Open, FileAccess.Read)
            fs.Position = 0
            '
            Dim imgLength As Integer = CInt(fs.Length)
            Dim bytes(0 To imgLength - 1) As Byte
            fs.Read(bytes, 0, imgLength)
            fs.Close()
            Return bytes
        End Function
    
    

    y esta otra  hace el inverso, para pderlo visualizar en una aplicacion

    Public Function Bytes2Image(ByVal bytes() As Byte) As Image
            If bytes Is Nothing Then Return Nothing
            '
            Dim ms As New MemoryStream(bytes)
            Dim bm As Bitmap = Nothing
            Try
                bm = New Bitmap(ms)
            Catch ex As Exception
                System.Diagnostics.Debug.WriteLine(ex.Message)
            End Try
            Return bm
    End Function


    Leer un msj que te da un ERROR te da la posibilidad de entender que esta pasando.! www.Mikito.net

    domingo, 19 de enero de 2014 18:24
  • Si lo que quieres es convertir una imagen desde la computadora del usuario te recomiendo usar este código:

    private async Task<byte []> GetBtyeFromFile(StorageFile storageFile)
    {
                var stream = await storageFile.OpenReadAsync();
    
                using (var dataReader = new DataReader(stream))
                {
                    var bytes = new byte[stream.Size];
                    await dataReader.LoadAsync((uint)stream.Size);
                    dataReader.ReadBytes(bytes);
    
                    return bytes;
                }
    }

    Si quieres convertir una imagen desde internet te recomiendo usar esto:

    private async Task<byte []> DescargarImagen(string url)
    {
      byte[] ByteResult = null;
      BitmapImage BitmapResult = new BitmapImage();
      ImageSource ImageSourceResult = null;
      if (!string.IsNullOrEmpty(url))
      {
        HttpClient client = new HttpClient();
        ByteResult = await client.GetByteArrayAsync(url);  //result as: byte[]
        InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream();
        await ras.WriteAsync(ByteResult.AsBuffer());
        ras.Seek(0);
        BitmapResult.SetSource(ras);
        ImageSourceResult = BitmapResult;  //result as: ImageSource or BitmapImage
      }
    }

    Si esto responde te pregunta, por favor márcalo como "Respuesta"


    Wilson Vargas Trujillo - Perú Twitter | @wvargasm "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes

    • Marcado como respuesta Hilario_Campos domingo, 20 de abril de 2014 22:21
    sábado, 15 de marzo de 2014 23:55

Todas las respuestas

  • pues muy facil, en la web hay muchos recursos incluso aqui en este foro,

     Public Function Image2Bytes(ByVal img As Image) As Byte()
            Dim sTemp As String = Path.GetTempFileName()
            Dim fs As New FileStream(sTemp, FileMode.OpenOrCreate, FileAccess.ReadWrite)
            img.Save(fs, System.Drawing.Imaging.ImageFormat.Png)
            ' Cerrarlo y volverlo a abrir
            ' o posicionarlo en el primer byte
            'fs.Close()
            'fs = New FileStream(sTemp, FileMode.Open, FileAccess.Read)
            fs.Position = 0
            '
            Dim imgLength As Integer = CInt(fs.Length)
            Dim bytes(0 To imgLength - 1) As Byte
            fs.Read(bytes, 0, imgLength)
            fs.Close()
            Return bytes
        End Function
    
    

    y esta otra  hace el inverso, para pderlo visualizar en una aplicacion

    Public Function Bytes2Image(ByVal bytes() As Byte) As Image
            If bytes Is Nothing Then Return Nothing
            '
            Dim ms As New MemoryStream(bytes)
            Dim bm As Bitmap = Nothing
            Try
                bm = New Bitmap(ms)
            Catch ex As Exception
                System.Diagnostics.Debug.WriteLine(ex.Message)
            End Try
            Return bm
    End Function


    Leer un msj que te da un ERROR te da la posibilidad de entender que esta pasando.! www.Mikito.net

    domingo, 19 de enero de 2014 18:24
  • Si lo que quieres es convertir una imagen desde la computadora del usuario te recomiendo usar este código:

    private async Task<byte []> GetBtyeFromFile(StorageFile storageFile)
    {
                var stream = await storageFile.OpenReadAsync();
    
                using (var dataReader = new DataReader(stream))
                {
                    var bytes = new byte[stream.Size];
                    await dataReader.LoadAsync((uint)stream.Size);
                    dataReader.ReadBytes(bytes);
    
                    return bytes;
                }
    }

    Si quieres convertir una imagen desde internet te recomiendo usar esto:

    private async Task<byte []> DescargarImagen(string url)
    {
      byte[] ByteResult = null;
      BitmapImage BitmapResult = new BitmapImage();
      ImageSource ImageSourceResult = null;
      if (!string.IsNullOrEmpty(url))
      {
        HttpClient client = new HttpClient();
        ByteResult = await client.GetByteArrayAsync(url);  //result as: byte[]
        InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream();
        await ras.WriteAsync(ByteResult.AsBuffer());
        ras.Seek(0);
        BitmapResult.SetSource(ras);
        ImageSourceResult = BitmapResult;  //result as: ImageSource or BitmapImage
      }
    }

    Si esto responde te pregunta, por favor márcalo como "Respuesta"


    Wilson Vargas Trujillo - Perú Twitter | @wvargasm "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes

    • Marcado como respuesta Hilario_Campos domingo, 20 de abril de 2014 22:21
    sábado, 15 de marzo de 2014 23:55