Fügen Sie die erforderlichen Importanweisungen für das image
Paket hinzu:
import 'dart:io';
import 'package:image/image.dart' as img;
import 'package:path_provider/path_provider.dart';
Erstellen Sie eine Funktion zum Zuschneiden und Speichern des zentrierten Bildes:
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');
}
Rufen Sie die Funktion mit dem Bilddateipfad, der Schnittbreite, der Schnitthöhe und dem gewünschten Dateinamen auf:
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);
}
Stellen Sie sicher, dass Sie 'image_path.png'
den tatsächlichen Pfad zu Ihrer Bilddatei angeben. Der Code liest das Bild, berechnet die Mittelposition, erstellt ein Zuschneiderechteck darum herum und schneidet das Bild dann mithilfe des image
Pakets zu. Das zugeschnittene Bild wird als neue PNG-Bilddatei mit dem benutzerdefinierten Dateinamen im Dokumentverzeichnis der Anwendung gespeichert. Der Dateipfad wird als Referenz in der Konsole ausgedruckt.
Denken Sie auch hier daran, bei der Arbeit mit Dateien und Bildern eine geeignete Fehlerbehandlung zu verwenden und auf Nullwerte zu prüfen.