在 Flutter Web 中将图像文件转换为 base64 图像
Convert image file into base64 image in Flutter Web
我正在使用 flutter 相机插件使用相机设备从我的应用中拍摄照片,并将它们作为 base64 图像发送到服务器上。
当我想将生成的图像转换为 base 64 图像时,我可以在我的 android 模拟器中使用以下行完美地完成此操作:
base64img = base64Encode(File(image.path).readAsBytesSync());
“图像”是一个 XFile。
“image.path”是一个字符串。
当我尝试在网络上使用同一行时,出现此错误:
Exception caught by gesture
═══════════════════════════════════════════ The following
UnsupportedError was thrown while handling a gesture: Unsupported
operation: _Namespace
我尝试了这一行(直接尝试转换 XFile 而不是从图像路径字符串转换生成的文件):
base64img = base64Encode(image.readAsBytesSync())
我得到同样的错误。
感谢您的帮助。
试试这个方法
import 'dart:convert';
import 'dart:io';
import 'package:image/image.dart';
String imageToBase64(File file, {int? height}) {
final image = decodeImage(file.readAsBytesSync())!;
final resizedImage = copyResize(image, height: height ?? 800);
return base64Encode(encodeJpg(resizedImage));
}
找到解决方案,使用 readAsBytes 而不是 readAsBytesSync:
var bytes = await widget.image.readAsBytes();
var base64img = base64Encode(bytes);
我正在使用 flutter 相机插件使用相机设备从我的应用中拍摄照片,并将它们作为 base64 图像发送到服务器上。
当我想将生成的图像转换为 base 64 图像时,我可以在我的 android 模拟器中使用以下行完美地完成此操作:
base64img = base64Encode(File(image.path).readAsBytesSync());
“图像”是一个 XFile。 “image.path”是一个字符串。
当我尝试在网络上使用同一行时,出现此错误:
Exception caught by gesture ═══════════════════════════════════════════ The following UnsupportedError was thrown while handling a gesture: Unsupported operation: _Namespace
我尝试了这一行(直接尝试转换 XFile 而不是从图像路径字符串转换生成的文件):
base64img = base64Encode(image.readAsBytesSync())
我得到同样的错误。
感谢您的帮助。
试试这个方法
import 'dart:convert';
import 'dart:io';
import 'package:image/image.dart';
String imageToBase64(File file, {int? height}) {
final image = decodeImage(file.readAsBytesSync())!;
final resizedImage = copyResize(image, height: height ?? 800);
return base64Encode(encodeJpg(resizedImage));
}
找到解决方案,使用 readAsBytes 而不是 readAsBytesSync:
var bytes = await widget.image.readAsBytes();
var base64img = base64Encode(bytes);