pickImages method

Future<void> pickImages(
  1. String key,
  2. ImageSource source,
  3. BuildContext context
)

Implementation

Future<void> pickImages(
    String key, ImageSource source, BuildContext context) async {
  if (source == ImageSource.gallery) {
    final List<XFile> pickedFiles = await ImagePicker().pickMultiImage();

    List<File> files = [];
    List<String>? base64Images = [];

    for (var pickedFile in pickedFiles) {
      File file = File(pickedFile.path);
      final imageBytes = await file.readAsBytes();
      final base64Image = base64Encode(imageBytes);
      files.add(file);
      base64Images.add(base64Image);
    }

    imageLists[key] = files;
    base64ImageLists[key] = base64Images;
  } else {
    List<File> files = [];
    List<String>? base64Images = [];

    for (int i = 0; i < 1; i++) {
      final XFile? pickedFile = await ImagePicker().pickImage(source: source);

      if (pickedFile != null) {
        File file = File(pickedFile.path);
        final imageBytes = await file.readAsBytes();
        final base64Image = base64Encode(imageBytes);
        files.add(file);
        base64Images.add(base64Image);
      }
    }

    imageLists[key] = files;
    base64ImageLists[key] = base64Images;
  }
}