Image 如何将图像转换为文件?
如果图像不是从gallery或camera拍摄的,那么将图像保存到设备的正确方法是什么 在PageA中,有一个摄像头按钮,允许用户捕捉图像。一旦捕获图像,它将转到PageB(编辑图像页面)。用户编辑完图像后,将返回PageA,并将图像保存到设备 PageAImage 如何将图像转换为文件?,image,flutter,dart,Image,Flutter,Dart,如果图像不是从gallery或camera拍摄的,那么将图像保存到设备的正确方法是什么 在PageA中,有一个摄像头按钮,允许用户捕捉图像。一旦捕获图像,它将转到PageB(编辑图像页面)。用户编辑完图像后,将返回PageA,并将图像保存到设备 PageA @override userImage(File images) async { // when user has captured image, it will run this code if (images != nu
@override
userImage(File images) async { // when user has captured image, it will run this code
if (images != null) {
Image image = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => EditImagePage(images.path), // go to edit image page
));
// convert image to File
// call copyImage function
} else {
}
}
PageB
IconButton(
icon: Icon(Icons.check),
onPressed: () async {
Uint8List bytes = await _controller.exportAsPNGBytes();
var image = Image.memory(bytes);
return Navigator.pop(context, image); // bring Image back to PageA
}),
我有此代码用于将图像保存到设备。如何将其更改为文件
Future<File> copyImage(File image) async {
var savedDir = await getApplicationDocumentsDirectory();
String appDocPath = savedDir.path;
var fileName = FileUtils.basename(image.path);
return await image.copy('$appDocPath/' + '$fileName');
}
Future copyImage(文件映像)异步{
var savedDir=等待getApplicationDocumentsDirectory();
字符串appDocPath=savedDir.path;
var fileName=FileUtils.basename(image.path);
返回wait image.copy(“$appDocPath/”+“$fileName”);
}
您可以将映像存储到设备内部存储器,将映像、资产映像转换为文件并存储到设备存储器中
首先,获取图像路径,生成文件并为图像写入字节
您可以编写如下代码:
import 'dart:async';
import 'dart:io';
import 'package:flutter/services.dart' show rootServices;
import 'package:path_provider/path_provider.dart';
Future<File> convertImageToFile(String imagePath) async {
final byteData = await rootServices.load('assets/$imagePath');
final file = File('${(await getTemporaryDirectory()).path}/$imagePath');
await file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
return file;
}
导入'dart:async';
导入“dart:io”;
导入“包:flatter/services.dart”显示rootServices;
导入“package:path_provider/path_provider.dart”;
Future convertImageToFile(字符串imagePath)异步{
final byteData=wait rootServices.load('assets/$imagePath');
final file=file('${(wait getTemporaryDirectory()).path}/$imagePath');
wait file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes,byteData.lengthInBytes));
返回文件;
}
需要存储访问权限,别忘了