@atlaskit/media-avatar-picker

中文文档
28.3.5发布于 2026/10/01Apache-2.0TypeScriptESM + CJS近 30 天下载 8042

一个用于选择、拖曳并调整图像外观大小的组件。 它还提供了预定义的相声的默认列表.

中文使用文档
文档目录13 节
  1. 安装
  2. 使用组件
  3. 本地图像上传和裁剪
  4. 预定义的神通
  5. 只有客户端
  6. 限制
  7. 处理错误
  8. 无障碍
  9. 键盘导航
  10. 屏幕阅读器支持
  11. 特征
  12. API 密码
  13. 用法示例

@atlaskit/media-avatar-捡取器

提供用于选择、拖动并调整图像外观大小的组件。 它还提供了预定义的相声的默认列表.

安装

yarn add @atlaskit/media-avatar-picker

使用组件

本地图像上传和裁剪

这个 AvatarPickerDialog 允许用户上传或降下本地图像,然后将平板并缩放到所期望的裁剪视图.

默认的缩放水平应当符合收成区域内的图像. 比收成面积小的图像被放大.

该组件会限制图像的平面和缩放,以确保用户只能选择有效的区域.

预定义的神通

该组件还允许用户从预定义的外观图像中选择. 这些可以通过它提供给组件 avatars 属性.

预定义的相机在用户选择图像时被隐藏.

只有客户端

该组件目前被设计为将所选的图像或外观递回. 它不使用任何特定的API来存储或上传,这是目前消费者的责任. 换句话说, 您需要一个解决方案来存储选中的图像或外观 .

限制

组件目前只接受 image/gif, (中文(简体) ), image/jpeg,以及 image/png mIME类型。 SVG 目前不支持.

组件只接受最高为10Mib的图像.

处理错误

该组件将处理客户端的下列错误:

  • 坏格式 - 如果用户上传一个格式不好的图像, 或丢弃无效的 MIME 类型, 将会显示错误
  • 图像大小 > 10Mib - 如果用户上传或降下大于 10Mib 的图像大小, 将会显示错误消息

见 errorMessage 属性下方可以设置您的自定义错误消息.

无障碍

该部分旨在完全无障碍,并遵循《世界儿童保护公约》的准则:

键盘导航

  • 图像裁剪: 使用箭头键在裁剪区域内移动并定位图像
  • 标签导航: 所有交互式元素都可以通过键盘访问
  • 重点管理: 整个接口清晰的视觉焦点指标

屏幕阅读器支持

  • ARIA 标签: 描述所有交互式元素的标签
  • 实时通知: 裁剪时移动图像时实时反馈
  • 语义标记:辅助技术的适当作用和结构

特征

  • 完全键盘可访问图像裁剪和导航
  • 图像定位屏幕阅读器通知
  • 高对比度重点指标
  • 整个接口的逻辑标签顺序

API 密码

onImagePicked?: (file: File, crop: CropProperties) => void

此属性在用户单击时被提高 保存 按钮,则有一个选定的图像。 通过了两个论点: file:File 是一个圆柱形,而收成设置是一个包含 x:number, (中文(简体) ),y:number,以及 size:number 值,这些值都相对于所选图像的坐标.

说明 由于对Safari QQ 10.0和IE11的限制,a Blob 对象将返回而不是一个 File。这仍然允许访问图像字节数据以便利上传,基本上减去文件名和日期属性.

这个 x 财务报告和审定财务报表 y 代表作物面积的来源。 这个 size 值是一个代表作物面积宽度和高度的单一值。 要从所选图像中获取收割区域,只需取取被剪接的矩形(x, (中文(简体) ), y, (中文(简体) ), size, (中文(简体) ), size)来自给定的图像.

onImagePickedDataURI?: (dataURI: string) => void

此属性在用户单击时被提高 保存 按钮,并有一个选定的图像。 选定的图像作为数据URI字符串提供.

onAvatarPicked: (avatar: Avatar) => void

此属性在用户单击时被提高 保存 按钮,并有预定义的已选择的外观,没有选择图像。 一个 Avatar 对象为 a dataURI 财产通过.

onCancel: Function

当用户点击时, 此属性会上升 取消 按钮.

说明 无法关闭对话框 。 由消费者负责从UI中重新提交并删除对话框.

imageSource?: string

(可选) 此属性用于设置选中的图像, 以便组件随其可见而打开 .

该值应为有效的数据URI字符串. 如果给出了无效的数据URI,则会触发不良格式错误状态并显示消息.

avatars: Array<Avatar>

此属性用于提供一系列预定义的外观. 这个 Avatar 对象是一个单一的简单类型 dataURI: string 属性。 为方便起见,此类型从 @atlassian/media-avatar-picker 模块与 AvatarPickerDialog 组件.

defaultSelectedAvatar?: Avatar

(可选) 该财产与 avatar 属性。 它允许您设置当前选中的预定义外观 。 默认情况下,即使 avatars 属性设置.

title?: string

(可选) 对话框的标题文本 。 默认是 上传相机。 。 。 .

primaryButtonText?: string

(可选) 主按钮文字. 默认是 保存。 。 。 .

errorMessage?: string

(可选) 此属性允许消费者显示错误消息 。 这可能是从呼叫服务。 如果大于 125 个字符串( 对话框内约有 3行) , 字符串会被剪接 .

用法示例

下面是制作 " Avatar PickerDialog " 的例子。 对话应被 " Modal Transition " 部分包住,以便在关闭时淡出.

import { AvatarPickerDialog, Avatar } from '@atlaskit/media-avatar-picker';
import { ModalTransition } from '@atlaskit/modal-dialog';

const avatars: Array<Avatar> = [{ dataURI: 'some-data-uri' }];

const App = ({ isOpen }) => (
  <ModalTransition>
    {isOpen && (
      <AvatarPickerDialog
        avatars={avatars}
        onImagePicked={(selectedImage, crop) => {
          console.log(selectedImage.size, crop.x, crop.y, crop.size);
        }}
        onAvatarPicked={selectedAvatar =>
          console.log(selectedAvatar.dataURI)
        }
        onCancel={() => /* we need to close the dialog... */}
      />
    )}
  </ModalTransition>
);

版本与发布记录

@atlaskit/media-avatar-picker 共发布 355 个版本,首次发布于 2017/04/19;过去 12 个月发布了 50 个版本。

版本发布日期距今
28.3.5latest2026/10/011 个月前
28.3.42026/09/241 个月前
28.3.32026/09/231 个月前
28.3.22026/09/171 个月前
28.3.12026/09/151 个月前
28.3.02026/08/302 个月前

其他发布通道:hotfix → 16.0.0-HOT-87089.4,next → 24.3.3。

关于 @atlaskit/media-avatar-picker 的常见问题

@atlaskit/media-avatar-picker 是什么?

一个用于选择、拖曳并调整图像外观大小的组件。 它还提供了预定义的相声的默认列表.

如何安装 @atlaskit/media-avatar-picker?

在项目目录运行 npm install @atlaskit/media-avatar-picker,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.2.0)、react-intl(^5.25.1 || ^6.0.0 || ^7.0.0)、@emotion/react(^11.7.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@atlaskit/media-avatar-picker 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@atlaskit/media-avatar-picker 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@atlaskit/media-avatar-picker 可以商用吗?

@atlaskit/media-avatar-picker 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@atlaskit/media-avatar-picker 的下载量有多少?

根据 npm 官方下载统计,@atlaskit/media-avatar-picker 在 2026/10/07 – 2026/11/05 这 30 天内被下载 8,042 次,日均约 268 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@atlaskit/media-avatar-picker 还在维护吗?

最新版本 28.3.5 发布于 2026/10/01(1 个月前);至今共发布 355 个版本,其中过去 12 个月发布了 50 个;首次发布于 2017/04/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。