Tambahkan pernyataan impor yang diperlukan untuk image
paket:
import 'dart:io';
import 'package:image/image.dart' as img;
import 'package:path_provider/path_provider.dart';
Buat fungsi untuk memotong dan menyimpan gambar di tengah:
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');
}
Panggil fungsi dengan jalur file gambar, lebar pangkas, tinggi pangkas, dan nama file yang diinginkan:
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);
}
Pastikan untuk mengganti 'image_path.png'
dengan jalur sebenarnya ke file gambar Anda. Kode akan membaca gambar, menghitung posisi tengah, membuat kotak pangkas di sekelilingnya, lalu memotong gambar menggunakan paket image
. Gambar yang dipotong akan disimpan sebagai file gambar PNG baru dengan nama file khusus di direktori dokumen aplikasi. Jalur file akan dicetak di konsol untuk referensi Anda.
Sekali lagi, ingatlah untuk menggunakan penanganan kesalahan yang tepat dan periksa nilai nol saat bekerja dengan file dan gambar.