如何解决将图片保存并加载到/ data / user中
我想让用户选择几张图像。确认后,我想将它们串联起来,然后与其他应用程序共享。 串联工作正常,我使用image / image.dart库(图像:^ 2.1.4)将最终的Image编写为ByteStream。为了共享,我使用esys库(esys_Flutter_share:^ 1.0.2)。
import 'package:image/image.dart' as pkg_img;
Future<String> _joinImages(List<Type> ikonList) async {
Future<List> imageList() async {
// some logic to get the data
}
pkg_img.Image mergedImage;
final documentDirectory = await getApplicationDocumentsDirectory();
final String filename = "test.png";
final String fullFilePath = join(documentDirectory.path,"${filename}");
FutureBuilder(
future: imageList(),builder: (context,snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
} else {
List<pkg_img.Image> myList = snapshot.data;
mergedImage = someLogicToConcatenateImages(myList);
final file = new File(fullFilePath);
file.writeAsBytesSync(pkg_img.encodePng(mergedImage));
return null;
}
});
print(fullFilePath);
return await join(fullFilePath);
}
_shareImage(String fileName) async {
Uint8List bytes = await _readFileByte(fileName);
await Share.file('esys image','esys.png',bytes,'image/png',text: 'Sent from My App.');
}
Future<Uint8List> _readFileByte(String filePath) async {
Uri myUri = Uri.parse(filePath);
File myFile = new File.fromUri(myUri);
Uint8List bytes;
await myFile.readAsBytes().then((value) {
bytes = Uint8List.fromList(value);
print('reading of bytes is completed');
});
return bytes;
}
RaisedButton(
onpressed: () {
_joinImages(_ikonList).then(_shareImage);
},child: Text('Export!'),),
我遇到的错误如下:
I/Flutter (13768): File: '/data/user/0/com.myapp/app_Flutter/test.png'
E/Flutter (13768): [ERROR:Flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: filesystemexception: Cannot open file,path = '/data/user/0/com.myapp/app_Flutter/test.png' (OS Error: No such file or directory,errno = 2)
E/Flutter (13768): #0 _File.open.<anonymous closure> (dart:io/file_impl.dart:366:9)
E/Flutter (13768): #1 _rootRunUnary (dart:async/zone.dart:1134:38)
E/Flutter (13768): #2 _CustomZone.runUnary (dart:async/zone.dart:1031:19)
E/Flutter (13768): #3 _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
E/Flutter (13768): #4 Future._propagatetoListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
E/Flutter (13768): #5 Future._propagatetoListeners (dart:async/future_impl.dart:709:32)
E/Flutter (13768): #6 Future._completeWithValue (dart:async/future_impl.dart:524:5)
E/Flutter (13768): #7 Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:554:7)
E/Flutter (13768): #8 _rootRun (dart:async/zone.dart:1126:13)
E/Flutter (13768): #9 _CustomZone.run (dart:async/zone.dart:1023:19)
E/Flutter (13768): #10 _CustomZone.runGuarded (dart:async/zone.dart:925:7)
E/Flutter (13768): #11 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
E/Flutter (13768): #12 _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
E/Flutter (13768): #13 _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
E/Flutter (13768):
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。