在 Flutter 中将字节数组转换为图像?

Sta*_*nny 6 flutter

我想从我的 REST API 服务获取图像,但是还没有找到任何关于如何将字节数组的响应主体解码为 Flutter 中图像的文档?任何有一些有用资源的人,请帮助...

Ken*_*Ken 9

由于评分最高的答案使用 flutter/widget.dart,因此dart:ui仅使用

Future<Image> tinypng() async {
  final bytes = Uint8List.fromList([
    137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0,
    1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 10, 73, 68, 65,
    84, 120, 156, 99, 0, 1, 0, 0, 5, 0, 1, 13, 10, 45, 180, 0, 0, 0, 0, 73,
    69, 78, 68, 174, 66, 96, 130 // prevent dartfmt
  ]);

  // copy from decodeImageFromList of package:flutter/painting.dart
  final codec = await instantiateImageCodec(bytes);
  final frameInfo = await codec.getNextFrame();
  return frameInfo.image;
}
Run Code Online (Sandbox Code Playgroud)


小智 7

将此用于您的图像小部件: Image.memory(bytes) 。您可以在此处找到更多文档:https : //docs.flutter.io/flutter/widgets/Image/Image.memory.html

  • 您好,如何解码原始图像字节数组?该函数表示“这只接受压缩图像格式(例如 PNG)。像 rawRgba([ui.Image.toByteData] 的默认格式)这样的未压缩格式将导致异常。” (4认同)

bal*_*u k 6

这将返回一个小部件

Image.memory(Uint8List);
Run Code Online (Sandbox Code Playgroud)