Flutterで画像URLをファイル形式に変換する方法を紹介します。 詳しく言うと、リモート=ネット上にある画像ファイルのURLから、その画像をFileオブジェクトとして取得するということです。
pubspec.yaml
)pubspec.yaml
に以下を追加してください。
path_provider: ^2.0.13
http: ^0.13.5
http
は、画像バイトを取得するためにURLへのAPIリクエストを呼び出すために使用されます。
path_provider
は、デバイスのファイルシステム上の一時的な場所を見つけて、デバイスに画像を一時的に保存するために使用されます。
.dart
)使用するパッケージを関数を宣言するDartファイルでインポートしてください。
import 'package:http/http.dart' as http;
import 'package:path_provider/path_provider.dart';
import 'dart:io';
import 'dart:math';
任意の画像URLをファイル形式に変換する関数です。
Future<File> urlToFile(String imageUrl) async {
//デバイスの一時ファイルのパスを取得します
final String tempPath = (await getTemporaryDirectory()).path;
//取得したパスにランダムなファイル名で新しいファイルを作成します
final File file = File('$tempPath${Random().nextInt(100)}.png');
//http.getメソッドを呼び出し、それにimageUrlを変換したUriを渡して応答を取得します
http.Response response = await http.get(Uri.parse(imageUrl));
//fileへhttp.getで受信したbodyBytesを書き込みます。
await file.writeAsBytes(response.bodyBytes);
//ファイルを返します
return file;
}
上記のurlToFile
関数に、文字列で画像のUrl引数を渡してあげるとFuture型でFileが返ってきます。
https://mrgulshanyadav.medium.com/convert-image-url-to-file-format-in-flutter-10421bccfd18
可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More