我正在使用C#的Bot Application Framework来构建一个skype bot。我对图像进行了一些处理,然后将其发送回用户的英雄卡片轮播。
我正在遵循英雄卡的限制,我正在调整图像大小,使其分辨率低于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;
}
提前致谢!