【Flutter】flutter_image_compressが対応する画像入出力形式について

こんにちは。エキサイトでアプリエンジニアをしている岡島です。

今回は、画像圧縮を行うライブラリであるflutter_image_compressの対応画像形式について調べたのでまとめていこうと思います。

環境

flutter_image_compress: 2.4.0

画像圧縮方法

flutter_image_compressを用いると下記コードのように、圧縮したい画像ファイルのpathと出力先のpathを指定し、画像品質をqualityで指定すると画像圧縮ができます。

final result = await FlutterImageCompress.compressAndGetFile(
    filePath, // 画像ファイルのパス
    targetPath, // 出力先のパス
    quality: 88, // 画像品質
  );

ファイルを圧縮してUint8Listを取得する関数やUint8List形式のデータを圧縮する関数も用意されているので、詳しくはライブラリのReadmeをご参照ください。

サポートされる画像形式

この記事ではiOSAndroidのプラットフォームについて、サポートされている画像形式を見ていきます。

入力形式

出力形式

出力形式 iOS対応 Android対応
jpeg
png
heic
webp

heic形式はiOS 11以上、Android API 28以上でサポートされています。

出力形式の指定方法

enumCompressFormatが用意されているので、CompressFormat.jpegのようにformatを指定します。 デフォルトではjpeg形式に設定されています。

final result = await FlutterImageCompress.compressAndGetFile(
    filePath,
    targetPath, 
    quality: 88,
    format: CompressFormat.png,  // 出力formatを指定
  );

最後に

今回はflutter_image_compressで対応しているファイル形式についてまとめてみました。 この記事が誰かのお役に立てれば幸いです。