信息发布→ 登录 注册 退出

MAUI怎么从相册选择图片 MAUI图片选择器用法

发布时间:2025-12-16

点击量:
推荐使用 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,为空表示用户取消操作
  • Android 13+ 自动启用 Photo Picker 多选界面;旧版本回退到传统图库(需存储权限)

图片预处理选项(可选)

MediaPickerOptions 中可指定常见后处理行为,避免手动压缩或旋转:

  • MaximumWidth / MaximumHeight:等比缩放至指定尺寸内(单位像素)
  • CompressionQuality = 85:JPEG 压缩质量(0–100)
  • RotateImage = true:按 EXIF 自动校正方向
  • PreserveMetaData = false:默认不保留元数据(减小体积)

平台注意事项

大部分场景无需额外配置,但要注意:

  • Android:MAUI 8+ 在 Android 13+ 上默认使用 Photo Picker(无需 READ_MEDIA_IMAGES 权限);Android 12 及以下仍需申请存储权限
  • iOS:自动适配相册权限,首次调用会弹出授权请求
  • Windows/macOS:目前仅支持拍照,暂不支持相册选择(PickPhotosAsync 返回空列表)

基本上就这些。用好 PickPhotosAsync 就能覆盖绝大多数图片选择需求,不复杂但容易忽略预处理参数和平台兼容性细节。

标签:# using  # 但要  # 可选  # 弹出  # 首次  # 就能  # 这是  # 暂不  # 推荐使用  # 多选  # 选择器  # var  # android  # 封装  # NULL  # .net  # cos  # stream  # win  # macos  # ios  # ai  # mac  # windows  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!