Come ritagliare le immagini centrate in Flutter- Guida semplice

Aggiungi le istruzioni di importazione necessarie per il image pacchetto:

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

Crea una funzione per ritagliare e salvare l'immagine centrata:

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');  
}  

Chiama la funzione con il percorso del file immagine, la larghezza del ritaglio, l'altezza del ritaglio e il nome file desiderato:

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);  
}  

Assicurati di sostituire 'image_path.png' con il percorso effettivo del tuo file immagine. Il codice leggerà l'immagine, calcolerà la posizione centrale, creerà attorno ad essa un rettangolo di ritaglio, quindi ritaglierà l'immagine utilizzando il image pacchetto. L'immagine ritagliata verrà salvata come un nuovo file immagine PNG con il nome file personalizzato nella directory dei documenti dell'applicazione. Il percorso del file verrà stampato nella console come riferimento.

Ancora una volta, ricorda di utilizzare la gestione degli errori appropriata e controlla i valori null quando lavori con file e immagini.