Cómo recortar imágenes centradas en Flutter- Guía simple

Agregue las declaraciones de importación necesarias para el image paquete:

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

Cree una función para recortar y guardar la imagen centrada:

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

Llame a la función con la ruta del archivo de imagen, el ancho de recorte, la altura de recorte y el nombre de archivo deseado:

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

Asegúrese de reemplazar 'image_path.png' con la ruta real a su archivo de imagen. El código leerá la imagen, calculará la posición central, creará un rectángulo de recorte a su alrededor y luego recortará la imagen usando el image paquete. La imagen recortada se guardará como un nuevo archivo de imagen PNG con el nombre de archivo personalizado en el directorio de documentos de la aplicación. La ruta del archivo se imprimirá en la consola para su referencia.

Nuevamente, recuerde usar el manejo de errores apropiado y verificar valores nulos cuando trabaje con archivos e imágenes.