Paket için gerekli içe aktarma ifadelerini ekleyin image
:
import 'dart:io';
import 'package:image/image.dart' as img;
import 'package:path_provider/path_provider.dart';
Ortalanmış görüntüyü kırpmak ve kaydetmek için bir işlev oluşturun:
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');
}
Görüntü dosyası yolu, kırpma genişliği, kırpma yüksekliği ve istenen dosya adıyla işlevi çağırın:
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);
}
'image_path.png'
Görüntü dosyanızın gerçek yolu ile değiştirdiğinizden emin olun. Kod görüntüyü okuyacak, merkez konumunu hesaplayacak, etrafında bir kırpma dikdörtgeni oluşturacak ve ardından paketi kullanarak görüntüyü kırpacaktır image
. Kırpılan görüntü, uygulamanın belge dizininde özel dosya adıyla yeni bir PNG görüntü dosyası olarak kaydedilecektir. Dosya yolu, referansınız için konsolda yazdırılacaktır.
Yine, uygun hata işlemeyi kullanmayı unutmayın ve dosyalarla ve resimlerle çalışırken boş değerleri kontrol edin.