From 15364600a86d7777d8c966b6f624cea8b07c8d3a Mon Sep 17 00:00:00 2001 From: Linwenxuan <116782992+Linwenxuan05@users.noreply.github.com> Date: Sun, 15 Oct 2023 21:19:29 +0800 Subject: [PATCH] Supports all scheme for ImageSegment --- .../Core/Message/Entity/ImageSegment.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Lagrange.OneBot/Core/Message/Entity/ImageSegment.cs b/Lagrange.OneBot/Core/Message/Entity/ImageSegment.cs index 3e16bba..e025f52 100644 --- a/Lagrange.OneBot/Core/Message/Entity/ImageSegment.cs +++ b/Lagrange.OneBot/Core/Message/Entity/ImageSegment.cs @@ -23,7 +23,25 @@ public partial class ImageSegment : ISegment { if (segment is ImageSegment imageSegment) { - if (imageSegment.Url != "") builder.Image(_client.GetAsync(imageSegment.Url).Result.Content.ReadAsByteArrayAsync().Result); + if (imageSegment is not { Url: "" }) + { + if (imageSegment.Url.StartsWith("http")) + { + builder.Image(_client.GetAsync(imageSegment.Url).Result.Content.ReadAsByteArrayAsync().Result); + } + + if (imageSegment.Url.StartsWith("file")) + { + string path = imageSegment.Url.Replace("file:///", ""); + builder.Image(File.ReadAllBytes(path)); + } + + if (imageSegment.Url.StartsWith("base64")) + { + string base64 = imageSegment.Url.Replace("base64://", ""); + builder.Image(Convert.FromBase64String(base64)); + } + } } }