Dans ce didacticiel, nous apprenons comment redimensionner la taille réelle de Image Unit8list dans Flutter. Pour redimensionner l'image, vous devrez peut-être charger l'image à partir d'actifs, de stockage de fichiers ou d'URL réseau dans les octets de Unit8list, puis la redimensionner ultérieurement. Voir l'exemple ci-dessous :
Tout d’abord, ajoutez le package image Flutter à votre projet en ajoutant les lignes suivantes dans le fichier pubspec.yaml.
dependencies:
flutter:
sdk: flutter
image: ^3.2.2
Maintenant, chargez votre image depuis les actifs ou le stockage de fichiers ou l'URL du réseau, ici nous perdons l'URL :
import 'dart:typed_data';
import 'package:flutter/services.dart';
String imgurl = "https://www.fluttercampus.com/img/banner.png";
Uint8List bytes = (await NetworkAssetBundle(Uri.parse(imgurl)).load(imgurl)).buffer.asUint8List();
Maintenant, redimensionnons l'image.
import 'package:image/image.dart' as IMG;
IMG.Image? img = IMG.decodeImage(bytes);
IMG.Image resized = IMG.copyResize(img!, width: 200, height: 200);
Uint8List resizedImg = Uint8List.fromList(IMG.encodePng(resized));
Ici, le resizeImg est l'image redimensionnée avec une largeur et une hauteur de 200px. N'oubliez pas que cela redimensionne la hauteur réelle de l'image et le widget.
OU, vous pouvez l'utiliser directement ResizeImage()auprès du fournisseur d'images dans le widget si vous l'affichez sur l'application.
Image(image: ResizeImage(AssetImage('assetpath.png'), width: 100, height: 150)),
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:image/image.dart' as IMG;
void main() async {
runApp(MyApp());
}
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Home(),
);
}
}
class Home extends StatefulWidget{
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
Uint8List? resizedImg;
Uint8List? bytes;
@override
void initState() {
Future.delayed(Duration.zero, () async {
String imgurl = "https://www.fluttercampus.com/img/banner.png";
bytes = (await NetworkAssetBundle(Uri.parse(imgurl)).load(imgurl)).buffer.asUint8List();
IMG.Image? img = IMG.decodeImage(bytes!);
IMG.Image resized = IMG.copyResize(img!, width: 200, height: 200);
resizedImg = Uint8List.fromList(IMG.encodePng(resized));
setState(() {});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Resize Image"),
backgroundColor: Colors.redAccent,
),
body: Container(
padding: EdgeInsets.all(30),
child: Column(
children:[
Text("Original Size"),
bytes != null?Image.memory(bytes!):Container(),
Text("Resize Size"),
resizedImg != null?Image.memory(resizedImg!):Container(),
]
)
),
);
}
}
De cette façon, vous pouvez redimensionner la taille réelle de l'image dans Flutter.