0

我正在使用 C# 的 Bot Application Framework 来构建一个 Skype 机器人。我对图像进行了一些处理,然后将其以英雄卡片的轮播形式发送回用户。

https://dev.skype.com/bots

我遵循英雄卡的限制,我正在调整图像大小,使其分辨率低于 1024*1024,它的类型是 png/jpg,它的大小低于 1MB。图像的链接也是 HTTPS://

每次都在https://dev.botframework.com的网络聊天中加载图像,但是当我在 Skype PC 或 Android 上使用它时,它很少加载。

这就是我制作旋转木马的方式。

var carousel = context.MakeMessage();
carousel.AttachmentLayout = AttachmentLayoutTypes.Carousel;
carousel.Attachments.Add(GetHeroCard(null, null, "Share this!", new CardImage(url: imageUrl, alt: imageUrl, tap: new CardAction(ActionTypes.ShowImage))));

这就是我将 Bitmap 对象编码为 png/jpeg 格式字节数组以上传到 blob 上的方式,从那里我获取到图像的 HTTPS 链接。

public static byte[] BitmapEncode2Byte(Bitmap bitmap, ImageFormat format)
    {
        MemoryStream stream = new MemoryStream();
        EncoderParameters encoderParameters = new EncoderParameters(1);
        encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
        bitmap.Save(stream, GetEncoder(ImageFormat.Png), encoderParameters);
        return stream.ToArray();
    }

    public static ImageCodecInfo GetEncoder(ImageFormat format)
    {
        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
        foreach (ImageCodecInfo codec in codecs)
        {
            if (codec.FormatID == format.Guid)
            {
                return codec;
            }
        }
        return null;
    }

提前致谢!

4

0 回答 0