パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v3.1.0

flutter_avif

libavif を使用して AVIF イメージを表示およびエンコードするための Flutter プラグイン。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
9550
いいね数
52
Pub ポイント
140

パッケージをインストール

flutter pub add flutter_avif

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

flutter_avif は、libavif ライブラリを使用して AVIF 画像の表示およびエンコードを可能にする Flutter プラグインです。Android、iOS、Web、macOS、Windows、Linux など複数のプラットフォームをサポートしています。このプラグインにより、開発者はアプリ内に高効率な AVIF 画像処理機能を統合でき、従来の JPEG や PNG 形式と比較して優れた圧縮率と画像品質を実現します。Flutter アプリケーション内で AVIF ファイルのデコードおよびエンコードを行うためのシンプルな API を提供しています。

用途

  • FlutterアプリでAVIF画像を表示する
  • 画像をAVIF形式に変換する
  • アプリ画像アセットの最適化
  • すべてのプラットフォームで現代的な画像形式をサポートする
  • メディア集約型アプリケーションへのAVIFの統合

主な機能

  • AVIFのデコードおよびエンコードをサポート
  • クロスプラットフォーム互換性
  • 効率的な処理に libavif を使用します
  • Flutter とのシンプルな統合
  • 優れた画像品質と高い圧縮率

適している対象

  • 効率的な画像ストレージを必要とするアプリ
  • 現代の画像形式をターゲットにする開発者
  • パフォーマンスと帯域幅の節約に焦点を当てたプロジェクト
  • 画像が多く含まれるアプリケーション、ギャラリーやソーシャルメディアなど
  • 高度な画像サポートを備えたクロスプラットフォームアプリを開発するチーム

注意事項

  • AVIFのサポートは、プラットフォームによってわずかに異なる場合があります
  • libavifを介したネイティブな依存関係が必要です
  • AVIF対応がないレガシーシステムには適していません
  • 古いWeb環境におけるブラウザのサポートが限定的
  • 一部のプラットフォームにおけるビルドの複雑さの可能性

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

flutter_avif

A flutter plugin to view and encode avif images.

Installation

To add the flutter_avif to your Flutter application follow the installation instructions on pub.dev.

Usage

AvifImage widget has a similar api as Flutter Image widget.

import 'package:flutter_avif/flutter_avif.dart';

AvifImage.file(
    file,
    height: 200,
    fit: BoxFit.contain,
),

AvifImage.asset(
    "test.avif",
    height: 200,
    fit: BoxFit.contain,
),

AvifImage.network(
    "https://test.com/test.avif",
    height: 200,
    fit: BoxFit.contain,
),

For documentation on widget properties, please refer to https://api.flutter.dev/flutter/widgets/Image-class.html.

The package also provides CachedNetworkAvifImage for caching network images.

import 'package:flutter_avif/flutter_avif.dart';

CachedNetworkAvifImage(
    "https://test.com/test.avif",
    height: 200,
    fit: BoxFit.contain,
)

Encoding

To convert an image to avif:

import 'package:flutter_avif/flutter_avif.dart';

final asset = await rootBundle.load("asset.gif");
final avifBytes = await encodeAvif(asset.buffer.asUint8List());
final outputFile = File('output.avif');
outputFile.writeAsBytes(avifBytes);
import 'package:flutter_avif/flutter_avif.dart';

final inputFile = File('input.png');
final inputBytes = await inputFile.readAsBytes();
final avifBytes = await encodeAvif(inputBytes);
final outputFile = File('output.avif');
outputFile.writeAsBytes(avifBytes);

Decoding

decodeAvif function can be used to decode an avif file to a list of dart:ui Image:

import 'package:flutter_avif/flutter_avif.dart';

final bytes = await rootBundle.load('asset.avif');
final frames = await decodeAvif(bytes.buffer.asUint8List());

decodeAvif functions return a list of AvifFrameInfo which has the duration and the image of a frame.

Custom Animation Controller

AvifAnimation can be used together with an AnimationController to manipulate the playback of multiframe images.

import 'package:flutter_avif/flutter_avif.dart';

AnimationController controller = AnimationController(vsync: this);

AvifAnimation(
    controller: controller,
    image: const AssetAvifImage('multiframe.avif'),
    onLoaded: (duration, fps) {
        controller.forward(); // play the animation
    },
),

カテゴリー

依存関係

依存関係一覧 10 件

  • exif^3.3.0
  • flutter_avif_android^3.1.0
  • flutter_avif_ios^3.1.0
  • flutter_avif_linux^3.1.0
  • flutter_avif_macos^3.1.0
  • flutter_avif_platform_interface^3.1.0
  • flutter_avif_web^3.1.0
  • flutter_avif_windows^3.1.0
  • flutter_cache_manager^3.4.1
  • http^1.2.2

ソースリポジトリ

このパッケージを使用しているプロジェクト