如何将图像文件转换为二进制数据? 我正在使用库调用image_picker从图库或照相机中选择图像。 我想将选择的图像转换为二进制数据。
File image = await ImagePicker.pickImage(source: ImageSource.gallery)
(image as Image).toByteData // the method toByteData here is not pop up.
答案 0 :(得分:2)
toByteData()方法允许将image
转换为字节数组。我们需要在format参数中传递格式,该参数指定返回字节的格式。它会返回以二进制数据或错误结尾的将来。
final pngByteData = await image.toByteData(format: ImageByteFormat.png);
ImageByteFormat
枚举包含以下常量。
有关ImageByteFormat
的更多信息,请查看此documentation。
更新::要将image file
转换为字节。然后使用readAsByte()方法。
var bytes = await ImagePicker.pickImage(source: ImageSource.gallery).readAsBytes();
要将图像转换为文件,请查看此answer。
答案 1 :(得分:1)
只需使用此method
var bytes = await File('filename').readAsBytes();
答案 2 :(得分:1)
您可能要考虑使用toByteData
方法。
它将图像对象转换为字节数组。
它返回一个future,该future返回一个二进制图像数据,如果编码失败,则返回一个错误。
这是此网站的实现:https://api.flutter.dev/flutter/dart-ui/Image/toByteData.html
Future<ByteData> toByteData({ImageByteFormat format = ImageByteFormat.rawRgba}) {
return _futurize((_Callback<ByteData> callback) {
return _toByteData(format.index, (Uint8List encoded) {
callback(encoded?.buffer?.asByteData());
});
});
}
format参数指定将以哪种编码格式返回字节。 希望这可以帮助!