วิธีครอบตัดรูปภาพที่อยู่กึ่งกลาง Flutter- คำแนะนำง่ายๆ

เพิ่มคำสั่งการนำเข้าที่จำเป็นสำหรับ image แพ็คเกจ:

import 'dart:io';  
import 'package:image/image.dart' as img;  
import 'package:path_provider/path_provider.dart';  

สร้างฟังก์ชั่นครอบตัดและบันทึกภาพตรงกลาง:

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');  
}  

เรียกใช้ฟังก์ชันด้วยเส้นทางไฟล์รูปภาพ ความกว้างของการครอบตัด ความสูงของการครอบตัด และชื่อไฟล์ที่ต้องการ:

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' ด้วยเส้นทางจริงไปยังไฟล์รูปภาพของคุณ โค้ดจะอ่านรูปภาพ คำนวณตำแหน่งกึ่งกลาง สร้างกรอบครอบตัดรอบๆ แล้วครอบตัดรูปภาพโดยใช้แพ็กเก image จ ภาพที่ครอบตัดจะถูกบันทึกเป็นไฟล์ภาพ PNG ใหม่พร้อมชื่อไฟล์ที่กำหนดเองในไดเร็กทอรีเอกสารของแอปพลิเคชัน เส้นทางของไฟล์จะถูกพิมพ์ในคอนโซลเพื่อเป็นข้อมูลอ้างอิงของคุณ

อย่าลืมใช้การจัดการข้อผิดพลาดที่เหมาะสมและตรวจสอบค่า Null เมื่อทำงานกับไฟล์และรูปภาพ