Search packages, repositories and app categories

GitHub repositoryyekeskin/flutter_avif

flutter_avif

A flutter plugin to view and encode avif images.

flutter_avif project cover
Stars
73
Forks
47
Last push (UTC)
Sep 21, 2025
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

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
    },
),
Yunus Emre Keskin GitHub avatar
GitHub author

Yunus Emre Keskin ↗

LanguagesDartRustJavaScriptC++MakefileCCMakeRubyJavaKotlinObjective-CSwiftShellDockerfile

Categories

Packages published by this repository

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗