我有Image ByteArray并希望将字节数组转换为png图像并添加ImageView,如下面的代码所示。
byte[] imageBytes = webClient.DownloadDataTaskAsync(uri);
ImageView view = new ImageView(this.Context);
//Here need to add the converted image into ImageView
view.SetImageSource();
我通过将ImageBytes转换为位图并在ImageView中添加位图来实现这一目标。但它有一些记忆问题。由于我在源代码中经常添加更多次数,因为内存异常,我无法在ImageView中添加位图。
所以请帮助我。
感谢。
答案 0 :(得分:2)
它应该像调用
一样简单var bitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
Android.Graphics.BitmapFactory.DecodeByteArray Method
从指定的字节数组中解码不可变的位图。
<强>参数强>
- 数据
- 压缩图像数据的字节数组
- 偏移
- 偏移到imageData,解码器应该开始解析。
- 长度
- 从offset开始到解析
的字节数- OPTS
- 空行;控制下采样的选项以及图像是否应该被完全解码,或仅返回大小。
答案 1 :(得分:1)
你可以通过从Stream创建位图来做到这一点:
using(var ms = new MemoryStream(imageBytes))
{
var bitmap = BitmapFactory.DecodeStream(ms);
// ...
// rest of your logic here...
// ...
}
希望这有帮助