TIF_NGANJUK_E41211358/lib/presentation/controller/controller_pick_image.dart

53 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';
class ControllerPickImage extends GetxController {
Future<void> pickImage(ImageSource source, CroppedFile croppedFile) async {
final pickedImage = await pickedFileImage(source);
if (pickedImage != null) {
CroppedFile? cropFile = await cropImage(pickedImage);
if (cropFile != null) {
croppedFile = cropFile;
}
}
}
Future<XFile?> pickedFileImage(ImageSource source) async {
try {
final picker = ImagePicker();
final pickedFile = await picker.pickImage(source: source);
if (pickedFile != null) {
return pickedFile;
} else {
return null;
}
} catch (e) {
print("Terjadi kesalahan saat memilih gambar : $e");
return null;
}
}
Future<CroppedFile?> cropImage(XFile image) async {
CroppedFile? croppedFile = await ImageCropper().cropImage(
sourcePath: image.path,
uiSettings: [
AndroidUiSettings(
toolbarTitle: 'Sesuaikan Gambar',
toolbarColor: Colors.blueAccent,
toolbarWidgetColor: Colors.white,
cropFrameColor: Colors.greenAccent,
hideBottomControls: false,
activeControlsWidgetColor: Colors.blue,
initAspectRatio: CropAspectRatioPreset.original,
lockAspectRatio: false),
IOSUiSettings(
minimumAspectRatio: 1.0,
),
],
);
return croppedFile;
}
}