Adăugați instrucțiunile de import necesare pentru image
pachet:
import 'dart:io';
import 'package:image/image.dart' as img;
import 'package:path_provider/path_provider.dart';
Creați o funcție pentru a decupa și a salva imaginea centrată:
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');
}
Apelați funcția cu calea fișierului imagine, lățimea decupării, înălțimea decupării și numele fișierului dorit:
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);
}
Asigurați-vă că înlocuiți 'image_path.png'
calea reală către fișierul imagine. Codul va citi imaginea, va calcula poziția centrală, va crea un dreptunghi decupat în jurul ei și apoi va decupa imaginea folosind pachetul image
. Imaginea decupată va fi salvată ca un nou fișier imagine PNG cu numele de fișier personalizat în directorul de documente al aplicației. Calea fișierului va fi tipărită în consolă pentru referință.
Din nou, nu uitați să utilizați gestionarea adecvată a erorilor și să verificați valorile nule atunci când lucrați cu fișiere și imagini.