Comment recadrer des images centrées dans Flutter- Guide simple

Ajoutez les instructions d'importation nécessaires pour le image package :

import 'dart:io';  
import 'package:image/image.dart' as img;  
import 'package:path_provider/path_provider.dart';  

Créez une fonction pour recadrer et enregistrer l'image centrée :

Future<void> cropAndSaveCenteredImage(String imagePath, double cropWidth, double cropHeight, String fileName) async {  
  // Read the image from the file path  
  File imageFile = File(imagePath);  
  List<int> imageBytes = await imageFile.readAsBytes();  
  img.Image image = img.decodeImage(imageBytes);  
  
  // Calculate the center position for cropping  
  int centerX = image.width ~/ 2;  
  int centerY = image.height ~/ 2;  
  
  // Calculate the crop rectangle based on the center position  
  int cropX =(centerX- cropWidth ~/ 2).clamp(0, image.width);  
  int cropY =(centerY- cropHeight ~/ 2).clamp(0, image.height);  
  
  // Crop the image  
  img.Image croppedImage = img.copyCrop(image, cropX, cropY, cropWidth.toInt(), cropHeight.toInt());  
  
  // Get the document directory to save the image  
  Directory directory = await getApplicationDocumentsDirectory();  
  String filePath = '${directory.path}/$fileName.png';  
  
  // Save the image to file  
  File file = File(filePath);  
  await file.writeAsBytes(img.encodePng(croppedImage));  
  
  // Display the file path  
  print('Image saved to: $filePath');  
}  

Appelez la fonction avec le chemin du fichier image, la largeur de recadrage, la hauteur de recadrage et le nom de fichier souhaité :

void main() async {  
  // Replace 'image_path.png' with the actual path of your image file  
  String imagePath = 'image_path.png';  
  
  // Define the desired crop width and height  
  double cropWidth = 200.0;  
  double cropHeight = 200.0;  
  
  // Define the desired filename(without the extension)  
  String fileName = 'cropped_image';  
  
  // Crop and save the centered image with the specified filename  
  await cropAndSaveCenteredImage(imagePath, cropWidth, cropHeight, fileName);  
}  

Assurez-vous de remplacer 'image_path.png' par le chemin d'accès réel à votre fichier image. Le code lira l'image, calculera la position centrale, créera un rectangle de recadrage autour d'elle, puis recadrera l'image à l'aide du image package. L'image recadrée sera enregistrée en tant que nouveau fichier image PNG avec le nom de fichier personnalisé dans le répertoire de documents de l'application. Le chemin du fichier sera imprimé dans la console pour votre référence.

Encore une fois, n'oubliez pas d'utiliser la gestion des erreurs appropriée et de vérifier les valeurs nulles lorsque vous travaillez avec des fichiers et des images.