using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Threading.Tasks; using Telegram.Bot.Types; using TelegramBotBase.Form; using TelegramBotBase.Sessions; namespace TelegramBotBase.Extensions.Images { public static class ImageExtensions { public static Stream ToStream(this Image image, ImageFormat format) { var stream = new MemoryStream(); image.Save(stream, format); stream.Position = 0; return stream; } /// /// Sends an image /// /// /// /// /// /// /// public static async Task SendPhoto(this DeviceSession session, Image image, string name, string caption, ButtonForm buttons = null, int replyTo = 0, bool disableNotification = false) { using (var fileStream = ToStream(image, ImageFormat.Png)) { var fts = InputFile.FromStream(fileStream, name); return await session.SendPhoto(fts, caption, buttons, replyTo, disableNotification); } } /// /// Sends an image /// /// /// /// /// /// /// public static async Task SendPhoto(this DeviceSession session, Bitmap image, string name, string caption, ButtonForm buttons = null, int replyTo = 0, bool disableNotification = false) { using (var fileStream = ToStream(image, ImageFormat.Png)) { var fts = InputFile.FromStream(fileStream, name); return await session.SendPhoto(fts, caption, buttons, replyTo, disableNotification); } } } }