web-dev-qa-db-ja.com

画像をFlutterでファイルに変換する方法は?

私はイメージウィジェットにイメージを持っているこのフラッターコードを書いています、そして私はそれをFirebaseストレージにアップロードすることができるようにそれをファイルに変換したいです。

_Image _image = Image.asset('assets\images\profile.png');
File _fileImage = convertToFile(_image);
//upload _fileImage to Firebase Storage code
_

File convertToFile(Image img)関数が必要です。

3

私はまったく同じ問題を持っていました、そしてこのガイドを使いました: https://medium.com/@mrgulshanyadav/convert-image-url-to-file-format-in-flutter-10421bcfd18 Gulshan Yadav)

これらのインポートを使用する

import 'package:http/http.Dart' as http;
import 'package:path_provider/path_provider.Dart';
import 'Dart:io';
import 'Dart:math'; 
 _

そしてこの関数:

Future<File> urlToFile(String imageUrl) async {
// generate random number.
var rng = new Random();
// get temporary directory of device.
Directory tempDir = await getTemporaryDirectory();
// get temporary path from temporary directory.
String tempPath = tempDir.path;
// create a new file in temporary path with random file name.
File file = new File('$tempPath'+ (rng.nextInt(100)).toString() +'.png');
// call http.get method and pass imageUrl into it to get response.
http.Response response = await http.get(imageUrl);
// write bodyBytes received in response to file.
await file.writeAsBytes(response.bodyBytes);
// now return the file which is created with random name in 
// temporary directory and image bytes from response is written to // that file.
return file;
}
 _
0
Jon