搜尋套件、儲存庫與 APP 分類

套件詳情v3.1.0

flutter_avif

一個使用 libavif 查看和編碼 avif 圖像的 Flutter 插件。

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
9550
喜歡數
52
Pub 分數
140

安裝套件

flutter pub add flutter_avif

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

flutter_avif 是一個 Flutter 插件,利用 libavif 庫實現 AVIF 圖像的檢視與編碼。它支援多個平台,包括 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

原始碼儲存庫

使用此套件的專案