create

fun create(data: OneBotImage.Data, resource: Resource? = null): OneBotImage(source)

直接使用 DataResource 构建 OneBotImage.

  • 如果 Resourcenull,则会尝试解析 data:

  • 如果 Data.url 不为 null,使用它(仅支持 JVM 平台)

  • 如果 Data.file 是 base64 格式,解析为 ByteArrayResource

  • 如果 Data.file 是链接或者文件路径, 解析为 URIResourcePathResource (仅支持 JVM 平台)

如果需要指定 Base64Encoder (since 1.6.1), 选择使用 create 的另一个可以提供 AdditionalParams 的重载。

Throws

如果解析 resource 时平台不支持


只通过 Data.file 属性构建 OneBotImage.


fun create(resource: Resource, additional: OneBotImage.AdditionalParams? = null): OneBotImage(source)

直接使用 Resource 构建一个用于发送OneBotImage。 其中,Data.file 会根据 Resource 的类型计算为一个对应的值, 大概规则为:

  • 如果为 (JVM平台的) URIResource, 且代表的是一个网络路径,则直接使用此网络路径。

  • 如果可以解析为本地文件(例如JVM平台的 FileResourcePathResourceURI.scheme == "file"URIResource, 则会根据 AdditionalParams.localFileToBase64 的与否解析为 base64 或本地文件路径。 (注意!一些尚且不支持读取本地文件的平台,可能会直接抛出 UnsupportedOperationException)。

  • 如果为可以直接读取字节数据的类型,例如 ByteArrayResource, 则计算并使用 base64 格式。

  • 其他无法判明类型的情况,尝试使用 base64 格式。

Throws

如果解析 resource 时平台不支持