Flutter:在 iOS 上选择图像作为 jpg/png 而不是 heic

Flutter: Picking images as jpg/png instead of heic on iOS

如何在 iOS 上直接选择 jpg 或 png 格式的图像? 如果此功能不可用:如何快速转换,而不必等待很长时间?

编辑:我想阻止选择 .heic,因为我必须将它发送到处理 jpg 和 png 而不是 .heic 的服务器

对于 HEIC 图片,您可以使用 multi_image_picker 4.6.7 在 iOS 中选择图片。

感谢穆罕默德·阿萨德·阿尔沙德! 可以通过pub.dev/packages/file_picker.

来解决

补充说明:

i select 个带有文件选择器的图像 https://pub.dev/packages/file_picker

FilePickerResult result;
try {
  result = await FilePicker.platform.pickFiles(
    type: FileType.custom,
    allowedExtensions: ['jpeg', 'jpg', 'heic', 'pdf'],
  );
} catch (e) {
  print('Exep: ****${e}***');
}

现在您可以检查文件的扩展名,使用包 path.dart 作为 p 和包 https://pub.dev/packages/heic_to_jpg 将图像转换为 jpeg

 File file = File(result.files.first.path);
  String fileExtension = p.extension(file.path).replaceAll('.', '');
  if (fileExtension == 'heic') {
    print('convert to jpeg');
    String jpegPath = await HeicToJpg.convert(file.path);
    file = File(jpegPath);
    fileExtension = 'jpeg';
  }

如果您将 imagePicker 与源相机一起使用,请不要忘记执行相同的操作。