推荐使用 MediaPicker.PickPhotosAsync 选择图片,支持多选、压缩、自动旋转;单张用 PickPhotoAsync,Android 13+ 默认启用无需权限的 Photo Picker,旧版需存储权限,iOS 自动申请相册权限,Windows/macOS 暂不支持相册选择。

在 .NET MAUI 中,从相册选择图片推荐使用 MediaPicker.PickPhotosAsync,这是官方封装的跨平台媒体选择器,支持多选、尺寸压缩、自动旋转等实用功能,且 Android 13+ 默认调用系统照片选择器(Photo Picker),无需额外权限。
基础单张图片选择
调用 PickPhotoAsync 即可打开系统相册,用户选一张后返回 FileResult:
- 代码简洁,一行即可启动:
var file = await MediaPicker.PickPhotoAsync(); - 若用户取消,返回
null,需判空处理 - 支持直接读取流:
using var stream = await file.OpenReadAsync();
多张图片批量选择
使用 PickPhotosAsync 并设置 SelectionLimit 参数,例如最多选 10 张:
var results = await MediaPicker.PickPhotosAsync(new MediaPickerOptions { SelectionLimit = 10 });- 返回
List<fileresult></fileresult>,为空表示用户取消操作 - Android 13+ 自动启用 Photo Picker 多选界面;旧版本回退到传统图库(需存储权限)
图片预处理选项(可选)
在 MediaPickerOptions 中可指定常见后处理行为,避免手动压缩或旋转:
标签: android windows mac ai ios macos win stream cos .net
还木有评论哦,快来抢沙发吧~