机器人框架旋转木马内的英雄卡中的图像很少加载

时间:2017-06-29 05:34:43

标签: c# botframework skype-bots

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

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;
    }

提前致谢!

0 个答案:

没有答案