我目前正在使用一个警告框,可以选择拍照或从图库中选择图片。
到目前为止的状态是:
我可以使用ImagePicker从图库中获取图片,这非常有效。
现在我要解决我的问题:
保存捕获的图像也可以,但是它保存在存储器中,因此不会显示在图库中。请帮助我
图片警报框:https://imgur.com/a/IhZ5Sgh
图像空的rencent文件夹 https://imgur.com/a/W3FvPtS
制作的图片:https://imgur.com/a/VIZOTBH
这是存储图像的路径:
文件:“ / storage / emulated / 0 / Android / data / com.example.supportanfrage / files / Pictures / 1cd284f4-3632-4ed8-8c6a-14d7be83a8335698897692938961258.jpg”
保存图像的方法
Future getAndSaveImage() async {
final File image = await ImagePicker.pickImage(source: ImageSource.camera);
debugPrint(image.toString());
if (image == null) return;
final directory = await getExternalStorageDirectory();
final String path = directory.path;
this._fileName = path;
final File localImage = await image.copy(path);
}
I using the following dependencies / plugins:
file_picker: ^1.3.8
camera: ^0.5.2+2
image_picker: ^0.6.0+17
image_gallery_saver: ^1.1.0
path_provider: ^1.1.2
Thanks.
答案 0 :(得分:0)
这是为抖动照相机插件提供的sample source code。需要时间戳,然后将带有该timeStampValue.jpg名称的照片保存在手机存储中。
Future<String> takePicture() async {
if (!controller.value.isInitialized) {
return null;
}
String timestamp() => DateTime.now().millisecondsSinceEpoch.toString();
final Directory extDir = await getApplicationDocumentsDirectory();
final String dirPath = '${extDir.path}/Pictures/flutter_test';
await Directory(dirPath).create(recursive: true);
final String filePath = '$dirPath/${timestamp()}.jpg';
if (controller.value.isTakingPicture) {
return null;
}
try {
await controller.takePicture(filePath);
} on CameraException catch (e) {
return null;
}
return filePath;
}