我正在编写一个电报机器人,它从用户那里获取 jpg 并将其作为贴纸发回。我通过下载jpg,将文件的扩展名更改为png并上传并将其作为贴纸消息发送回用户来正确地做到了这一点。如下所示:
var file = await bot.GetFileAsync(update.Message.Photo.LastOrDefault()?.FileId);
var filename = file.FileId + "." + file.FilePath.Split('.').Last();
var pngFileName = filename.Split('.')[0] + ".png";
using (var saveImageStream = System.IO.File.Open(pngFileName, FileMode.Create))
{
await bot.DownloadFileAsync(file.FilePath, saveImageStream);
await bot.SendTextMessageAsync(update.Message.Chat.Id, "please wait...");
}
using (var stream = System.IO.File.Open(pngFileName, FileMode.Open))
{
await bot.SendStickerAsync(update.Message.Chat.Id, stream);
}
Run Code Online (Sandbox Code Playgroud)
但是这些贴纸不会在 IOS 设备上的电报中加载,并且此代码仅适用于 android 上的电报用户。我试图将 jpg 文件的扩展名更改为 webp,但没有用。
然后我下载了标准电报贴纸,发现电报贴纸的标准格式是webp文件。现在我想知道如何将收到的 jpg 文件转换为 webp 文件。
using (Image image = Image.FromFile("image.jpg"))
{
Bitmap bitmap = new Bitmap(image);
WebPFormat.SaveToFile("image.webp", …Run Code Online (Sandbox Code Playgroud)