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.
来解决
补充说明:
- https://pub.dev/packages/file_picker 允许您选择 files/images 等,图像文件类型为 .jpg
- https://pub.dev/packages/multi_image_picker 也允许您选择图像,但是 采用原始文件格式;例如.heic、.jpg、.png
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 与源相机一起使用,请不要忘记执行相同的操作。
如何在 iOS 上直接选择 jpg 或 png 格式的图像? 如果此功能不可用:如何快速转换,而不必等待很长时间?
编辑:我想阻止选择 .heic,因为我必须将它发送到处理 jpg 和 png 而不是 .heic 的服务器
对于 HEIC 图片,您可以使用 multi_image_picker 4.6.7 在 iOS 中选择图片。
感谢穆罕默德·阿萨德·阿尔沙德! 可以通过pub.dev/packages/file_picker.
来解决补充说明:
- https://pub.dev/packages/file_picker 允许您选择 files/images 等,图像文件类型为 .jpg
- https://pub.dev/packages/multi_image_picker 也允许您选择图像,但是 采用原始文件格式;例如.heic、.jpg、.png
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 与源相机一起使用,请不要忘记执行相同的操作。