Tilføj de nødvendige importerklæringer for image pakken:
import 'dart:io';
import 'package:image/image.dart' as img;
import 'package:path_provider/path_provider.dart';
Opret en funktion til at beskære og gemme det centrerede billede:
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');
}
Kald funktionen med billedfilstien, beskæringsbredden, beskæringshøjden og det ønskede filnavn:
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);
}
Sørg for at erstatte 'image_path.png' med den faktiske sti til din billedfil. Koden vil læse billedet, beregne midterpositionen, skabe et beskæringsrektangel omkring det og derefter beskære billedet ved hjælp af pakken image. Det beskårede billede vil blive gemt som en ny PNG-billedfil med det brugerdefinerede filnavn i programmets dokumentmappe. Filstien vil blive udskrevet i konsollen til din reference.
Igen, husk at bruge passende fejlhåndtering og tjek for null-værdier, når du arbejder med filer og billeder.

