flutter_avif
libavif का उपयोग करके avif छवियों को देखने और कोड करने के लिए एक फ्लटर प्लगइन।
एक फ्लटर प्लगइन जो एवीआईएफ छवियों को देखने और कोड करने के लिए है।
यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
A flutter plugin to view and encode avif images.
To add the flutter_avif to your Flutter application follow the installation instructions on pub.dev.
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,
)
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);
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.
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
},
),