How can I convert a image into a byte array in uwp platform

后端 未结 1 1324
执念已碎
执念已碎 2021-01-18 17:17

I need to convert an image into a byte array to store it in a database. and also I need to convert that array back to the image. I did google research but I couldn\'t find a

1条回答
  •  囚心锁ツ
    2021-01-18 17:51

    I found the solution from these articles as theoutlander says.

    To convert a image into a byte[] i'm going to use the 'OpenSequentialReadAsyn()' method of a storage file.

    lets assume that our image is 'file'. to convert it into a byte array do the below

     using (var inputStream = await file.OpenSequentialReadAsync())
            {
                var readStream = inputStream.AsStreamForRead();
    
                var byteArray =  new byte[readStream.Length];
                await readStream.ReadAsync(byteArray, 0, byteArray.Length);
                return byteArray;
            }
    

    To convert the byte[] back into a image do the following,

     using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
            {
                using (DataWriter writer = new DataWriter(stream.GetOutputStreamAt(0)))
                {
                    writer.WriteBytes(this.byteArray);
                    await writer.StoreAsync();
                }
                var image = new BitmapImage();
                await image.SetSourceAsync(stream);
                return image;
    
            }
    

    you can find more in this article.

    0 讨论(0)
提交回复
热议问题