Image
自定义表情 (收藏的表情) 和普通图片.
最推荐的存储方式是存储图片原文件, 每次发送图片时都使用文件上传. 在上传时服务器会根据其缓存情况回复已有的图片 ID 或要求客户端上传.
获取 Image 实例
根据 ID 构造图片
ID 格式查看 Image.imageId. 通过 ID 构造的图片若未存在于服务器中, 发送后在客户端将不能正常显示. 可通过 Image.isUploaded 检查图片是否存在于服务器. Image.isUploaded 需要除了 ID 以外其他参数, 如 width, size 等, 因此不建议通过 ID 构造图片, 而是使用 Builder 构建, 以提供详细参数.
使用 Image.fromId. 在 Kotlin, 也可以使用顶层函数 val image = Image("id").
在 Kotlin 通过 ID 构造图片
// 根据喜好选择
val image = Image.fromId("id")
val image2 = Image("id")在 Java 通过 ID 构造图片
Image image = Image.fromId("id")使用 Builder 构建图片
Image 提供 Builder 构建方式, 可以指定 width, height 等额外参数. 请尽可能提供这些参数以提升图片发送的成功率和 Image.isUploaded 的准确性.
上传图片资源获得 Image
使用 Contact.uploadImage, 将 ExternalResource 上传得到 Image.
也可以使用 ExternalResource.uploadAsImage 扩展.
发送图片消息
在获取实例后, 将图片元素连接到消息链即可发送. 图片可以与纯文本等其他 MessageContent 混合使用 (在同一消息链中).
下载图片
通过事件等方式获取到 Image 实例后, 使用 Image.queryUrl 查询得到图片的下载地址, 自行使用 HTTP 客户端下载.
其他查询
查询图片是否已存在于服务器
使用 Image.isUploaded. 当图片在服务器上存在时返回 true, 这意味着图片可以直接发送.
服务器通过 Image.md5 鉴别图片. 当图片已经存在于服务器时, Contact.uploadImage 会更快返回 (仍然需要进行网络请求), 不会上传图片数据.
检测图片 ID 合法性
mirai 码支持
格式: [mirai:image:Image.imageId]
See also
Types
Functions
判断内容是否与 another 相等.
判断内容是否与 another 相等即 this 与 another 的 contentToString 相等.
判断内容是否与 another 相等即 this 与 another 的 contentToString 相等. strict 为 true 时, 还会额外判断每个消息元素的类型, 顺序和属性. 如 Image 会判断 Image.imageId
转为最接近官方格式的字符串. 如 At(member) + "test" 将转为 "@群名片 test".
将 this 和 tail 连接.
转换为 mirai 码.