[Flutter] Image.memory 画像のバイトデータを表示する

Image.memory は画像のバイトデータを変換して表示することができます

1x1.trans - [Flutter] Image.memory 画像のバイトデータを表示する




Image.memory

 

Image.memory を使って画像を表示させる手順として

ネット上、assetsあるいは何らかの画像データを

Unit8Listに変換

Image.memory でUnit8Listから画像を作成

縦横サイズをきめ、BoxFit.cover でアスペクト比を保持してWidget一杯に展開して表示させます

この例ではBase64のデータから画像表示させます

Flutterでの画像表示方法はいくつかあります

  • Image.asset
    • アプリ内のassetsに画像を置きそこから読み出して表示
  • Image.network
    • Net上のURLから取得して表示
  • Image.file
    • デバイス内の写真や画像ファイルを表示
  • Image.memory
    • バイトストリーム、例えばBase64でエンコードされた画像を表示する

また、Imageクラスには特定の目的がないデフォルトのコンストラクタとしてImage.newがあります
これは明示的にコンストラクタを呼び出したい場合でほとんどのケースでは直接使われることはないようです

  • Image.new
    • Image.newはImageクラスのデフォルトコンストラクタ
    • ImageProvider
      • 異なるソースからの画像を取得するための統一されたインターフェースの役割

 

 

Base64エンコードデータ

 

例えばサイズが 439×660 の画像 img_2.jpg で試してみましょう

1x1.trans - [Flutter] Image.memory 画像のバイトデータを表示する

これをネットにあるツールなどでBase64に変換します

ダウンロード:img_2_base64

 

サンプルコード

 

Base64のデータは膨大なので省略しています

main.dart

 

 

実行結果

 

Androidエミュレータで実行

1x1.trans - [Flutter] Image.memory 画像のバイトデータを表示する

 
関連記事:

  1. Image.asset で画像を表示する
  2. Image.network でネット上の画像を表示する
  3. image_picker 画像を読み出す
  4. image_picker カメラ撮影
  5. Image.memory 画像のバイトデータを表示する

References:
Image.memory
image class

シェアする

  • このエントリーをはてなブックマークに追加

フォローする