Lägg till de nödvändiga importsatserna för image paketet:
import 'dart:io';
import 'package:image/image.dart' as img;
import 'package:path_provider/path_provider.dart';
Skapa en funktion för att beskära och spara den centrerade bilden:
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');
}
Anropa funktionen med bildfilens sökväg, beskärningsbredd, beskärningshöjd och önskat filnamn:
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);
}
Se till att ersätta 'image_path.png' med den faktiska sökvägen till din bildfil. Koden kommer att läsa bilden, beräkna mittpositionen, skapa en beskärningsrektangel runt den och sedan beskära bilden med paketet image. Den beskurna bilden kommer att sparas som en ny PNG-bildfil med det anpassade filnamnet i programmets dokumentkatalog. Filsökvägen kommer att skrivas ut i konsolen för din referens.
Återigen, kom ihåg att använda lämplig felhantering och kontrollera om det finns nollvärden när du arbetar med filer och bilder.

