패키지, 저장소 및 앱 카테고리 검색

패키지 상세v3.1.0

flutter_avif

libavif를 사용하여 AVIF 이미지를 보고 인코딩하는 플러터 플러그인입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
9.6천
좋아요
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 지원이 없는 레거시 시스템에는 적합하지 않습니다
  • 오래된 웹 환경에서 브라우저 지원이 제한됨
  • 일부 플랫폼에서의 잠재적 빌드 복잡성

원본 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

소스 저장소

이 패키지를 사용하는 프로젝트